{"openapi":"3.1.0","info":{"title":"Karla API","description":"The Karla API (version 1) provides programmatic access to the Karla platform. The API is organized around RESTful HTTP endpoints.\n\n# Getting started\n\nTo get started with the Karla API, you'll need to:\n\n1. **Register an organization and shop** - [Sign up for a Karla account](https://portal.gokarla.io), create or join an organization and set up your first shop. Remember your `shop slug`, it will be required in all API URIs.\n2. **Obtain API credentials** - Generate an API key in the Settings section.\n3. **Set up authentication** - Use HTTP Basic Auth with your API credentials.\n4. **Make your first request** - Test the connection with a simple API call.\n5. **Explore the endpoints** - Use this documentation to understand available operations.\n\n## Quick Start Example\n\nHere's a simple example to verify your API access:\n\n```bash\ncurl https://api.gokarla.io/v1/shops/your-shop-slug \\\n  -u your-username:your-private-api-key\n```\n\n## Base URL\n\nAll API requests should be made to:\n\n```text\nhttps://api.gokarla.io/v1/\n```\n\n## Request Format\n\n- **Content-Type**: `application/json`\n- **Accept**: `application/json`\n- **Encoding**: UTF-8\n\n## Response Format\n\nAll responses are returned in JSON format. Successful responses will have HTTP status codes in the 2xx range.\n\n```json\n{\n  \"data\": \"...\",\n  \"metadata\": \"...\"\n}\n```\n\n# Authentication\n\nThe Karla API uses HTTP Basic Authentication to secure endpoints. Your username is the one you assigned to the API key (if not given, it defaults to the shop slug), and your password is the generated API key.\n\n## How It Works\n\nHTTP Basic Authentication requires you to send credentials in the `Authorization` header with each request:\n\n```text\nAuthorization: Basic <base64-encoded-credentials>\n```\n\n## Creating the Authorization Header\n\n1. **Combine your credentials**: Join your username and API key with a colon\n\n   ```text\n   username:api-key\n   ```\n\n2. **Base64 encode**: Convert the combined string to Base64\n\n   ```javascript\n   // JavaScript example\n   const credentials = btoa(\"your-username:your-api-key\");\n   const authHeader = `Basic ${credentials}`;\n   ```\n\n   ```python\n   # Python example\n   import base64\n   credentials = base64.b64encode(b'your-username:your-api-key').decode('utf-8')\n   auth_header = f'Basic {credentials}'\n   ```\n\n3. **Include in requests**: Add the header to your API calls\n\n   ```javascript\n   // JavaScript/Fetch example\n   fetch(\"https://api.gokarla.io/v1/shops/your-shop-slug\", {\n     headers: {\n       Authorization: `Basic ${credentials}`,\n       \"Content-Type\": \"application/json\",\n     },\n   });\n   ```\n\n   ```python\n   # Python/Requests example\n   import requests\n   response = requests.get(\n     'https://api.gokarla.io/v1/shops/your-shop-slug',\n     auth=('your-username', 'your-api-key')\n   )\n   ```\n\n## Using cURL\n\nWith cURL, you can use the `-u` flag which automatically handles the Base64 encoding:\n\n```bash\ncurl https://api.gokarla.io/v1/shops/your-shop-slug \\\n  -u your-username:your-api-key\n```\n\n## API Key Permissions\n\nAPI keys can have different permission levels that control access to resources:\n\n| Role     | Description                             | Access Level                           |\n| -------- | --------------------------------------- | -------------------------------------- |\n| `viewer` | Read-only access to resources           | Can view orders, shipments, and data   |\n| `editor` | Read and write access to most resources | Can create/update orders and shipments |\n| `admin`  | Full access to all shop resources       | Can manage all shop settings and data  |\n\n## Obtaining API Keys\n\n1. Log in to your [Karla Dashboard](https://portal.gokarla.io)\n2. Navigate to **Settings** → **API Keys**\n3. Select the appropriate permission level for your use case\n4. Click **Create API Key**\n5. Copy and securely store your credentials:\n   - **Username**: Your merchant identifier\n   - **API Key**: Your secret key (shown only once!)\n\n## Error Responses\n\nAuthentication errors return specific error codes:\n\n| Status Code | Error Key                 | Description                                     |\n| ----------- | ------------------------- | ----------------------------------------------- |\n| `400`       | `invalid_merchant_or_key` | Missing or malformed authentication credentials |\n| `401`       | `invalid_merchant_or_key` | Invalid username or API key                     |\n| `403`       | `insufficient_rights`     | Valid credentials but insufficient permissions  |\n\n## Security Best Practices\n\n1. **Store credentials securely**\n\n   - Use environment variables or secure key management systems\n   - Never hardcode credentials in your source code\n   - Never expose credentials in client-side applications\n\n2. **Implement proper error handling**\n\n   - Handle authentication failures gracefully\n   - Don't expose credential details in error messages\n   - Implement retry logic with exponential backoff\n\n3. **Maintain credential hygiene**\n   - Use HTTPS for all API requests (HTTP redirects automatically)\n   - Rotate API keys regularly\n   - Revoke unused or compromised keys immediately\n   - Use the minimum required permission level\n\n# Errors\n\nThe Karla API uses conventional HTTP response codes to indicate the success or failure of an API request. In general:\n\n- Codes in the `2xx` range indicate success\n- Codes in the `4xx` range indicate an error that failed given the information provided (e.g., a required parameter was omitted, an order doesn't exist, etc.)\n- Codes in the `5xx` range indicate an error with Karla's servers\n\n## Error Response Format\n\nAll error responses follow a consistent structure:\n\n```json\n{\n  \"key\": \"shop_not_found\",\n  \"message\": \"Unable to find shop\",\n  \"type\": \"invalid_request_error\",\n  \"errors\": []\n}\n```\n\n## Error Object Properties\n\n| Property  | Type   | Description                                                                            |\n| --------- | ------ | -------------------------------------------------------------------------------------- |\n| `key`     | string | A unique error code identifying the specific error. See below for all possible values. |\n| `message` | string | A human-readable message providing more details about the error.                       |\n| `type`    | string | The type of error returned. Either `api_error` or `invalid_request_error`.             |\n| `errors`  | array  | For validation errors (422), contains detailed field-level error information.          |\n\n## Possible Error Keys\n\nThe API returns specific error keys that help identify the exact issue:\n\n### Client Errors (4xx)\n\n| Error Key                         | Description                                                      | HTTP Status |\n| --------------------------------- | ---------------------------------------------------------------- | ----------- |\n| `a_b_test_not_found`              | The requested A/B test was not found                             | 404         |\n| `a_b_test_overlap`                | An A/B test with the same segment and time period already exists | 409         |\n| `announcement_exists`             | An announcement with that ID already exists                      | 409         |\n| `announcement_not_found`          | The requested announcement was not found                         | 404         |\n| `campaign_active_segment_exists`  | An active campaign for the same segment already exists           | 409         |\n| `campaign_exists`                 | A campaign with that ID already exists                           | 409         |\n| `campaign_not_found`              | The requested campaign was not found                             | 404         |\n| `campaign_product_not_found`      | The requested campaign product was not found                     | 404         |\n| `campaign_type_invalid`           | Invalid campaign type provided                                   | 422         |\n| `carrier_reference_invalid`       | Invalid carrier reference provided                               | 422         |\n| `deal_not_found`                  | The requested deal was not found                                 | 404         |\n| `discount_exists`                 | A discount with that ID already exists                           | 409         |\n| `discount_not_found`              | The requested discount was not found                             | 404         |\n| `image_media_unsupported`         | Uploaded image format is not supported                           | 415         |\n| `invalid_payload`                 | Request validation error (check `errors` array for details)      | 422         |\n| `klaviyo_key_missing_permissions` | Klaviyo API key lacks required permissions                       | 400         |\n| `klaviyo_key_not_found`           | Klaviyo key not configured for this shop                         | 404         |\n| `order_exists`                    | An order with that ID already exists                             | 409         |\n| `order_not_found`                 | The requested order was not found                                | 404         |\n| `org_exists`                      | An organization with that ID already exists                      | 409         |\n| `org_not_found`                   | The requested organization was not found                         | 404         |\n| `permission_denied`               | User doesn't have permission for this operation                  | 403         |\n| `shipment_exists`                 | A shipment with that ID already exists                           | 409         |\n| `shipment_not_found`              | The requested shipment was not found                             | 404         |\n| `shop_exists`                     | A shop with that ID already exists                               | 409         |\n| `shop_fixtures_not_found`         | Shop fixtures need to be created first                           | 404         |\n| `shop_not_found`                  | The requested shop was not found                                 | 404         |\n| `shop_settings_not_found`         | Shop settings were not found                                     | 404         |\n| `user_exists`                     | A user with that email already exists                            | 409         |\n| `user_not_found`                  | The requested user was not found                                 | 404         |\n| `webhook_exists`                  | A webhook with that configuration already exists                 | 409         |\n| `webhook_not_found`               | The requested webhook was not found                              | 404         |\n| `zip_code_invalid`                | Invalid zip code provided                                        | 422         |\n\n#### Server Errors (5xx)\n\n| Error Key                 | Description                                        | HTTP Status |\n| ------------------------- | -------------------------------------------------- | ----------- |\n| `bad_gateway`             | Third-party service returned an unexpected error   | 502         |\n| `service_not_implemented` | The requested functionality is not yet implemented | 501         |\n| `unexpected`              | An unexpected error occurred on Karla's servers    | 500         |\n\n## Validation Errors (422)\n\nWhen a request fails validation, the API returns a 422 status code with additional details in the `errors` array:\n\n```json\n{\n  \"key\": \"invalid_payload\",\n  \"message\": \"Validation error\",\n  \"type\": \"invalid_request_error\",\n  \"errors\": [\n    {\n      \"loc\": [\"body\", \"email\"],\n      \"msg\": \"field required\",\n      \"type\": \"missing\"\n    }\n  ]\n}\n```\n\nEach validation error includes:\n\n- `loc`: The location of the error (e.g., `[\"body\", \"email\"]` for a missing email field in the request body)\n- `msg`: A human-readable error message\n- `type`: The type of validation error (e.g., `missing`, `value_error`, `type_error`)\n\n# Localization\n\nThe API supports multiple languages and delivers localized content based on the Accept-Language header provided in HTTP requests. This ensures that responses are tailored to the individual language preferences of each user.\n\n## Examples\n\n### Single Language\n\n```http\nAccept-Language: es\n```\n\n### With Locale\n\n```http\nAccept-Language: en-GB\n```\n\n### Multiple Languages with Preferences\n\n```http\nAccept-Language: fr-CA, fr;q=0.8, en;q=0.5\n```\n\n# Pagination\n\nThe Karla API uses page-based pagination for endpoints that return collections of resources. This provides a simple and intuitive way to navigate through large datasets.\n\n## Query Parameters\n\nPaginated endpoints accept the following query parameters:\n\n| Parameter  | Type    | Default | Description                        | Constraints |\n| ---------- | ------- | ------- | ---------------------------------- | ----------- |\n| `page`     | integer | 1       | The page number to retrieve        | Must be > 0 |\n| `per_page` | integer | 30      | Number of items to return per page | 1-100 items |\n\n## Example Request\n\n```bash\ncurl https://api.gokarla.io/v1/shops/your-shop/orders?page=2&per_page=50 \\\n  -u your-username:your-private-api-key\n```\n\n## Response Format\n\nPaginated responses return an array of items:\n\n```json\n[\n  {\n    \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"order_number\": \"ORD-2024-001\",\n    \"created_at\": \"2024-01-15T10:30:00Z\"\n  },\n  {\n    \"id\": \"123e4567-e89b-12d3-a456-426614174001\",\n    \"order_number\": \"ORD-2024-002\",\n    \"created_at\": \"2024-01-15T11:00:00Z\"\n  }\n]\n```\n\n## Best Practices\n\n1. **Choose appropriate page sizes** - Larger pages reduce requests but increase response time\n2. **Handle empty results** - The last page may contain fewer items than `per_page`\n3. **Respect rate limits** - Pagination doesn't exempt you from rate limiting\n4. **Cache when possible** - Results from earlier pages are unlikely to change frequently\n\n# Versioning\n\nWhen backwards-incompatible changes are made to the API, we release a new, dated version. GoKarla uses a date-based versioning scheme to ensure a predictable and stable API experience for developers.\n\n## Version Format\n\nAPI versions are named for the date of their release. For example, the API version `2024-01-05` was released on `Fri, 5 Jan 2024`.\n\n## How to Specify a Version\n\nYou can configure your API version with the `Karla-Version` header. As a precaution, use API versioning to test a new API version before committing to an upgrade.\n\n```jsx title=\"Request with Version Header\"\ncurl https://api.gokarla.io/v1/shops/your-shop/campaigns \\\n  -u your-username:your-private-api-key \\\n  -H \"Karla-Version: 2024-01-05\"\n```\n\n## Default Behavior\n\nRequests without the `Karla-Version` header, or with an invalid version, will default to use the latest stable version. This ensures backward compatibility while allowing developers to opt into specific versions when needed.\n\n## Major Version Changes\n\nFor significant architectural changes, the base URL path will be updated:\n\n- Current: `/v1/`\n- Future: `/v2/`\n\nMajor version changes are rare and will be communicated well in advance with comprehensive migration guides and at least 1 year of deprecation notice.\n","version":"1.0.0"},"paths":{"/v1/shops/{slug}/ab-tests":{"post":{"tags":["ABTest"],"summary":"Create A/B Test","description":"Create a new A/B test for campaign optimization.\n\n    This endpoint allows to create A/B tests to experiment with different\n    campaign variants and measure their performance.","operationId":"v1.ab_tests.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The shop's unique identifier","title":"Slug"},"description":"The shop's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestCreationDTO","description":"AB test creation payload."}}}},"responses":{"200":{"description":"Successfully created an AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find a campaign related to the given AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["ABTest"],"summary":"List Ab Tests","description":"List all AB tests for a shop.","operationId":"v1.ab_tests.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The shop's unique identifier","title":"Slug"},"description":"The shop's unique identifier"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"Successfully listed AB tests","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ABTestResponseDTO-Input"},"title":"Response 200 V1.Ab Tests.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/ab-tests/{uuid}":{"get":{"tags":["ABTest"],"summary":"Get A/B Test Details","description":"Retrieve detailed information about a specific A/B test.\n\n    **Required permissions**: SuperAdmin role","operationId":"v1.ab_tests.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The shop's unique identifier","title":"Slug"},"description":"The shop's unique identifier"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The AB test's unique identifier","title":"Uuid"},"description":"The AB test's unique identifier"}],"responses":{"200":{"description":"Successfully retrieved AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestResponseDTO-Input","nullable":true,"title":"Response V1.Ab Tests.Get"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/ab-tests/{uuid}/end-test":{"post":{"tags":["ABTest"],"summary":"End A/B Test","description":"End an active A/B test and finalize the results.\n\n    This action will stop assigning new users to test variants and mark\n    the test as completed.","operationId":"v1.ab_tests.end-test","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The shop's unique identifier","title":"Slug"},"description":"The shop's unique identifier"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The AB test's unique identifier","title":"Uuid"},"description":"The AB test's unique identifier"}],"responses":{"200":{"description":"Successfully ended AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestResponseDTO-Input","nullable":true,"title":"Response V1.Ab Tests.End-Test"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/announcements":{"post":{"tags":["Announcement"],"summary":"Create Announcement","description":"Create an announcement if it does not exist.","operationId":"v1.announcements.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnouncementCreationDTO","description":"Announcement creation payload."}}}},"responses":{"200":{"description":"Successfully created an announcement","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the announcement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Announcement"],"summary":"Search Announcements","description":"Search all announcements or based on some values to filter.","operationId":"v1.announcements.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"uuid","in":"query","required":true,"schema":{"type":"string","format":"uuid","title":"Uuid"}},{"name":"text","in":"query","required":true,"schema":{"type":"string","title":"Text"}},{"name":"language","in":"query","required":false,"schema":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"title":"Language"}}],"responses":{"200":{"description":"Successfully retrieved announcements","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnnouncementDetailDTO"},"title":"Response 200 V1.Announcements.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the announcement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/announcements/{uuid}":{"delete":{"tags":["Announcement"],"summary":"Delete Announcement","description":"Delete an announcement that already exists.","operationId":"v1.announcements.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The announcement's unique identifier","title":"Uuid"},"description":"The announcement's unique identifier"}],"responses":{"200":{"description":"Successfully deleted an announcement","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Announcement"],"summary":"Update Announcement","description":"Update an announcement partially or completely.","operationId":"v1.announcements.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The announcement's unique identifier","title":"Uuid"},"description":"The announcement's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnnouncementUpdateDTO","description":"Announcement update payload."}}}},"responses":{"200":{"description":"Successfully updated an announcement","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/automations":{"get":{"tags":["Automations"],"summary":"List Automations","description":"List a shop's automations.","operationId":"v1.automations.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"Successfully retrieved the shop's automations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AutomationDTO-Input"},"title":"Response 200 V1.Automations.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Automations"],"summary":"Create Automation","description":"Create a shop automation.","operationId":"v1.automations.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationCreateDTO"}}}},"responses":{"200":{"description":"Successfully created the automation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/automations/{automation_id}":{"get":{"tags":["Automations"],"summary":"Get Automation","description":"Get one of a shop's automations.","operationId":"v1.automations.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The automation UUID","title":"Automation Id"},"description":"The automation UUID"}],"responses":{"200":{"description":"Successfully retrieved the automation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Automations"],"summary":"Update Automation","description":"Update one of a shop's automations.","operationId":"v1.automations.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The automation UUID","title":"Automation Id"},"description":"The automation UUID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationUpdateDTO"}}}},"responses":{"200":{"description":"Successfully updated the automation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutomationDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Automations"],"summary":"Delete Automation","description":"Soft-delete one of a shop's automations.","operationId":"v1.automations.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"automation_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The automation UUID","title":"Automation Id"},"description":"The automation UUID"}],"responses":{"204":{"description":"Successfully deleted the automation"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/campaigns":{"post":{"tags":["Campaign"],"summary":"Create Campaign","description":"Create a campaign if it does not exist.","operationId":"v1.campaigns.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignRequestDTO","description":"Campaign creation payload."}}}},"responses":{"200":{"description":"Successfully created a campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Campaign"],"summary":"Search Campaigns","description":"Search all campaigns or based on some values to filter.","operationId":"v1.campaigns.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Uuid"}},{"name":"name","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Name"}},{"name":"start_date","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"Start Date"}},{"name":"end_date","in":"query","required":false,"schema":{"type":"string","format":"date-time","nullable":true,"title":"End Date"}},{"name":"segment","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Segment"}},{"name":"promotion_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/PromotionType","nullable":true,"title":"Promotion Type"}},{"name":"enabled","in":"query","required":false,"schema":{"type":"boolean","nullable":true,"title":"Enabled"}}],"responses":{"200":{"description":"Successfully retrieved campaigns","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CampaignResponseDTO-Input"},"title":"Response 200 V1.Campaigns.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/campaigns/{uuid}":{"delete":{"tags":["Campaign"],"summary":"Delete Campaign","description":"Delete a campaign that already exists.","operationId":"v1.campaigns.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The campaign's unique identifier","title":"Uuid"},"description":"The campaign's unique identifier"}],"responses":{"200":{"description":"Successfully deleted a campaign","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response V1.Campaigns.Delete"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Campaign"],"summary":"Update Campaign","description":"Update a campaign completely.","operationId":"v1.campaigns.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The campaign's unique identifier","title":"Uuid"},"description":"The campaign's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignRequestDTO","description":"Campaign update payload."}}}},"responses":{"200":{"description":"Successfully updated a campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/campaigns/order/{order_number}":{"get":{"tags":["Campaign"],"summary":"Get Campaign By Order Number","description":"Get campaigns for an order by order number.","operationId":"v1.campaigns.order.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"order_number","in":"path","required":true,"schema":{"type":"string","description":"The order's unique identifier","title":"Order Number"},"description":"The order's unique identifier"}],"responses":{"200":{"description":"Successfully retrieved campaigns for order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCampaignsDTO-Input","nullable":true,"title":"Response V1.Campaigns.Order.Get"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find campaigns related to the given order"}}}},"/v1/shops/{slug}/carriers/dhl/credentials/parcel-de":{"put":{"tags":["Carrier"],"summary":"Set Dhl Parcel De Credentials","description":"Set the shop's DHL Parcel DE credentials.","operationId":"v1.shops.carriers.dhl.credentials.parcel_de.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DHLParcelDECredentialsDTO","description":"Per-shop DHL Parcel DE business-customer credentials."}}}},"responses":{"200":{"description":"Successfully set DHL Parcel DE credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Carriers.Dhl.Credentials.Parcel De.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Carrier"],"summary":"Get Dhl Parcel De Credentials","description":"Get the shop's DHL Parcel DE credentials (masked).","operationId":"v1.shops.carriers.dhl.credentials.parcel_de.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DHLParcelDECredentialsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Carrier"],"summary":"Delete Dhl Parcel De Credentials","description":"Delete the shop's DHL Parcel DE credentials.","operationId":"v1.shops.carriers.dhl.credentials.parcel_de.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/claims":{"post":{"tags":["Claim"],"summary":"Create Claim","description":"Create a claim if it does not exist.","operationId":"v1.claims.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreationDTO","description":"Claim creation payload."}}}},"responses":{"200":{"description":"Successfully created a claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Claim"],"summary":"Search Claims","description":"Search all claims or based on some values to filter.","operationId":"v1.claims.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"order_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Order Id"}},{"name":"shipment_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Shipment Id"}},{"name":"resolution_preference","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ClaimResolutionPreference","nullable":true,"title":"Resolution Preference"}},{"name":"status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ClaimStatus","nullable":true,"title":"Status"}},{"name":"reason","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ClaimReason","nullable":true,"title":"Reason"}},{"name":"created_from","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Created From"}},{"name":"created_to","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Created To"}},{"name":"updated_from","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Updated From"}},{"name":"updated_to","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Updated To"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"-created_at","title":"Sort"}}],"responses":{"200":{"description":"Paginated list of claims matching the search criteria","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimsPaginatedResponse-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/claims/{uuid}":{"get":{"tags":["Claim"],"summary":"Get Claim","description":"Get a single claim by its unique identifier.","operationId":"v1.claims.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid"},"description":"The claim's unique identifier"}],"responses":{"200":{"description":"Successfully retrieved a claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Claim"],"summary":"Delete Claim","description":"Delete a claim that already exists.","operationId":"v1.claims.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid"},"description":"The claim's unique identifier"}],"responses":{"200":{"description":"Successfully deleted a claim","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response V1.Claims.Delete"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Claim"],"summary":"Update Claim","description":"Modify an existing claim.","operationId":"v1.claims.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid"},"description":"The claim's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimUpdateDTO","description":"Claim update payload."}}}},"responses":{"200":{"description":"Successfully updated a claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/deals":{"get":{"tags":["Deal"],"summary":"List Deals","description":"List all deals.","operationId":"v1.deals.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"Successfully retrieved deals","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DealDTO-Input"},"title":"Response 200 V1.Deals.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/deals":{"get":{"tags":["Deal"],"summary":"List Shop Deals","description":"List all deals for a shop.","operationId":"v1.deals.shop.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"Successfully retrieved deals","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DealDetailDTO-Input"},"title":"Response 200 V1.Deals.Shop.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Shop not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Deal"],"summary":"Create Deal","description":"Create a deal for a shop.","operationId":"v1.deals.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDealDTO"}}}},"responses":{"200":{"description":"Successfully created deal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealDetailDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Shop not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/deals/{deal_id}":{"patch":{"tags":["Deal"],"summary":"Update Deal","description":"Update a deal for a shop.","operationId":"v1.deals.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the deal","title":"Deal Id"},"description":"The ID of the deal"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDealDTO"}}}},"responses":{"200":{"description":"Successfully updated deal","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealDetailDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Deal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Deal"],"summary":"Delete Deal","description":"Delete a deal for a shop.","operationId":"v1.deals.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the deal","title":"Deal Id"},"description":"The ID of the deal"}],"responses":{"204":{"description":"Successfully deleted deal"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Deal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/discounts":{"post":{"tags":["Discount"],"summary":"Create Discount","description":"Create a discount if it does not exist.","operationId":"v1.discounts.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountCreationDTO","description":"Discount creation payload."}}}},"responses":{"200":{"description":"Successfully created a discount","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the discount","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Discount"],"summary":"Search Discounts","description":"Search all discounts or based on some values to filter.","operationId":"v1.discounts.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"code","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Code"}},{"name":"target_selection","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DiscountTargetSelectionEnum","nullable":true,"title":"Target Selection"}},{"name":"target_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DiscountTargetTypeEnum","nullable":true,"title":"Target Type"}},{"name":"title","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Title"}},{"name":"value_type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DiscountValueTypeEnum","nullable":true,"title":"Value Type"}},{"name":"value","in":"query","required":false,"schema":{"type":"number","nullable":true,"title":"Value"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Uuid"}},{"name":"type","in":"query","required":false,"schema":{"$ref":"#/components/schemas/DiscountTypeEnum","nullable":true,"title":"Type"}}],"responses":{"200":{"description":"Successfully retrieved discounts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DiscountResponseDTO"},"title":"Response 200 V1.Discounts.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the discount","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/discounts/{uuid}":{"delete":{"tags":["Discount"],"summary":"Delete Discount","description":"Delete a discount that already exists.","operationId":"v1.discounts.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The discount's unique identifier","title":"Uuid"},"description":"The discount's unique identifier"}],"responses":{"200":{"description":"Successfully deleted a discount","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Discount"],"summary":"Update Discount","description":"Update a discount partially or completely.","operationId":"v1.discounts.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The discount's unique identifier","title":"Uuid"},"description":"The discount's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscountUpdateDTO","description":"Discount update payload."}}}},"responses":{"200":{"description":"Successfully updated a discount","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/email-templates/variables":{"get":{"tags":["Email Templates"],"summary":"List Email Template Variables","description":"List the variables available in Flow email templates.\n\nPublic (unauthenticated) — this is a static, non-sensitive vocabulary that\nfeeds the portal variable-picker, the Shopify app BFF, and the docs.","operationId":"v1.email_templates.variables.list","responses":{"200":{"description":"Available email-template variables","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateVariablesResponseDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/email-templates/catalog":{"get":{"tags":["Email Templates"],"summary":"List Catalog Email Templates","description":"List the published catalog email templates (the merchant gallery).\n\nPublic (unauthenticated) — only published catalog templates are returned.","operationId":"v1.email_templates.catalog.list","responses":{"200":{"description":"Published catalog email templates","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/EmailTemplateCatalogDTO"},"type":"array","title":"Response 200 V1.Email Templates.Catalog.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/email-templates/catalog/{template_id}":{"get":{"tags":["Email Templates"],"summary":"Get Catalog Email Template","description":"Get a published catalog email template by ID.\n\nPublic (unauthenticated) — unpublished or missing templates return 404.","operationId":"v1.email_templates.catalog.get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The catalog template UUID","title":"Template Id"},"description":"The catalog template UUID"}],"responses":{"200":{"description":"A published catalog email template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateCatalogDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/email-templates":{"get":{"tags":["Email Templates"],"summary":"List Shop Email Templates","description":"List a shop's email templates.","operationId":"v1.email_templates.shop.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"description":"Current page","default":1,"title":"Page"},"description":"Current page"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"description":"Email templates per page","default":100,"title":"Per Page"},"description":"Email templates per page"}],"responses":{"200":{"description":"Successfully retrieved the shop's email templates","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailTemplateDTO"},"title":"Response 200 V1.Email Templates.Shop.List"}}},"headers":{"X-Total-Count":{"description":"Total number of email templates","schema":{"type":"integer"}},"X-Page":{"description":"Current page number","schema":{"type":"integer"}},"X-Per-Page":{"description":"Requested number of templates per page","schema":{"type":"integer"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Email Templates"],"summary":"Create Shop Email Template","description":"Create a shop email template (from scratch or cloned from the catalog).","operationId":"v1.email_templates.shop.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateCreateDTO"}}}},"responses":{"200":{"description":"Successfully created the email template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/email-templates/{template_id}":{"get":{"tags":["Email Templates"],"summary":"Get Shop Email Template","description":"Get one of a shop's email templates.","operationId":"v1.email_templates.shop.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The email template UUID","title":"Template Id"},"description":"The email template UUID"}],"responses":{"200":{"description":"Successfully retrieved the email template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Email Templates"],"summary":"Update Shop Email Template","description":"Update one of a shop's email templates.","operationId":"v1.email_templates.shop.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The email template UUID","title":"Template Id"},"description":"The email template UUID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateUpdateDTO"}}}},"responses":{"200":{"description":"Successfully updated the email template","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Email Templates"],"summary":"Delete Shop Email Template","description":"Soft-delete one of a shop's email templates.","operationId":"v1.email_templates.shop.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The email template UUID","title":"Template Id"},"description":"The email template UUID"}],"responses":{"204":{"description":"Successfully deleted the email template"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/emails":{"post":{"tags":["Email Templates"],"summary":"Send Shop Email","description":"Render a shop email template and enqueue it for delivery.\n\nv1 is service-only (super-admin token): mail leaves Karla's shared\nCloudflare-verified domain and v1 has no per-shop rate limiting, so a\nmerchant or leaked token calling this directly would be an open-relay /\nsender-reputation risk. Plain merchant tokens are rejected with 403.\nThe shop is always derived from the authorized path slug, never the body.\n\nRendering (subject + HTML) is synchronous; delivery is asynchronous via\nthe email-send pipeline, which dedupes on (shop, idempotency_key).\nFor callers: 401/403/404/409/422 are permanent failures; 5xx are\ntransient and safe to retry with the same idempotency key.","operationId":"v1.emails.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateSendRequestDTO"}}}},"responses":{"202":{"description":"Email rendered and enqueued for delivery","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTemplateSendResponseDTO"}}}},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders":{"get":{"tags":["Order"],"summary":"Search Orders","description":"Search and filter orders for a specific shop.\n\n    This endpoint supports various filters including order status, date ranges,\n    customer information, and more. Results are paginated.","operationId":"v1.orders.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"email_id","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Email Id"}},{"name":"external_id","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"External Id"}},{"name":"order_name","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Order Name"}},{"name":"order_number","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Order Number"}},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Uuid"}},{"name":"zip_code","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Zip Code"}},{"name":"order_placed_from","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Order Placed From"}},{"name":"order_placed_to","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Order Placed To"}},{"name":"shipment_updated_since","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Shipment Updated Since"}}],"responses":{"200":{"description":"List of orders that match the search criteria","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderDetailDTO-Input"},"title":"Response 200 V1.Orders.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Order"],"summary":"Place Order","description":"Create a new order for the shop.\n\n    This endpoint handles order placement from your e-commerce platform.\n    The order will be validated, processed, and appropriate shipments will be created.","operationId":"v1.orders.placement","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderPlacementDTO","description":"Order placement information."}}}},"responses":{"200":{"description":"Successfully placed an order","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"Order with unique id already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Order"],"summary":"Upsert Order","description":"Process a shop order upsert.","operationId":"v1.orders.upsert","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFulfillmentDTO","description":"Order creation/update and tracking fulfillment information."}}}},"responses":{"200":{"description":"Successfully created or updated a single order","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Returned when the `order` object is omitted and no order matches the given `id`/`id_type`. A tracking-only request updates an existing order and does not create one; include the `order` object to create-or-update in a single call."}}}},"/v1/shops/{slug}/orders/{order_id}":{"patch":{"tags":["Order"],"summary":"Update Order","description":"Process a shop order update.","operationId":"v1.orders.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id given by Karla identifying the order","title":"Order Id"},"description":"The id given by Karla identifying the order"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderUpdateDTO","description":"Order update information."}}}},"responses":{"200":{"description":"Successfully updated an order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDetailDTO-Output"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/{order_id}/shipments/{shipment_id}":{"patch":{"tags":["Order"],"summary":"Update Order Shipment","description":"Process a shop order shipment update.","operationId":"v1.orders.shipments.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id given by Karla identifying the order","title":"Order Id"},"description":"The id given by Karla identifying the order"},{"name":"shipment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id given by Karla identifying the tracking from the order","title":"Shipment Id"},"description":"The id given by Karla identifying the tracking from the order"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderTrackingUpdateDTO","description":"Shipment update information."}}}},"responses":{"200":{"description":"Successfully updated an order shipment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingDTO-Output"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/analytics":{"put":{"tags":["Order"],"summary":"Upsert Order Analytics","description":"Upsert Karla tracking analytics data for an order.\n\n    Uses PUT semantics: all Karla tracking fields (source, campaign, medium,\n    landing_url, landing_path, referrer, captured_at, reference_order_id) are\n    **fully overwritten** on every call, including with null values.\n    Non-Karla fields (e.g. landing_site, note_attributes from Shopify)\n    are preserved.\n\n    This means values previously set via Shopify note_attributes or the\n    PUT orders endpoint will be overwritten if not included in the payload.\n\n    The order can be identified by UUID, order number, or external ID\n    using the id and id_type fields in the request body.","operationId":"v1.orders.analytics.upsert","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderAnalyticsDTO","description":"Karla tracking analytics data to upsert."}}}},"responses":{"200":{"description":"Successfully upserted order analytics","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Shop or order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/bulk":{"put":{"tags":["Order"],"summary":"Fulfill Orders","description":"Process a shop order fulfillment in bulk (via shop slug).","operationId":"v1.orders.fulfillment.bulk","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrderFulfillmentDTO"},"description":"Order fulfillment information to process in bulk.","title":"Order Fulfillments"}}}},"responses":{"200":{"description":"Successfully processed order fulfillments operation","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/{order_identifier}/shipments/{tracking_number}":{"delete":{"tags":["Order"],"summary":"Delete Shipment from Order","description":"Delete a shipment from an order by tracking number.\n\n    The order can be identified by UUID, order number, or external ID.","operationId":"v1.orders.shipments.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"order_identifier","in":"path","required":true,"schema":{"type":"string","description":"The order identifier (UUID, order number, or external ID)","title":"Order Identifier"},"description":"The order identifier (UUID, order number, or external ID)"},{"name":"tracking_number","in":"path","required":true,"schema":{"type":"string","description":"The tracking number of the shipment to delete","title":"Tracking Number"},"description":"The tracking number of the shipment to delete"}],"responses":{"204":{"description":"Successfully deleted shipment"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find order or shipment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/trackpage-url":{"post":{"tags":["Order"],"summary":"Create Trackpage Url","description":"Generate a trackpage URL with token for an order.","operationId":"v1.orders.trackpage_url.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpageTokenRequestDTO"}}}},"responses":{"200":{"description":"Successfully generated trackpage URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpageTokenResponseDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/orders/track":{"get":{"tags":["Order"],"summary":"Get Order by Trackpage Token","description":"Retrieve order details authenticated by a trackpage token.\n\n    This endpoint does not require an API key — the HMAC token serves as\n    the authentication mechanism. Accepts one order identifier\n    (order_number, order_name, external_id, or uuid) plus the token.","operationId":"v1.orders.track","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"HMAC-SHA256 trackpage token","title":"Token"},"description":"HMAC-SHA256 trackpage token"},{"name":"order_number","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"Order number","title":"Order Number"},"description":"Order number"},{"name":"order_name","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"Order name","title":"Order Name"},"description":"Order name"},{"name":"external_id","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"External order ID","title":"External Id"},"description":"External order ID"},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"Karla order UUID","title":"Uuid"},"description":"Karla order UUID"}],"responses":{"200":{"description":"Order details with tracking information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderDetailDTO-Input"}}}},"403":{"description":"Invalid or missing trackpage token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/orgs/{slug}":{"get":{"tags":["Organization"],"summary":"Get Org","description":"Search for shop orders (and its trackings if any) based on filters.","operationId":"v1.orgs.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the org","title":"Slug"},"description":"The slug identifying the org"}],"responses":{"200":{"description":"Get your current organization","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDTO-Output","type":"array","items":{"$ref":"#/components/schemas/UserDTO-Input"},"title":"Response 200 V1.Orgs.Get"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/orgs/{slug}/members":{"get":{"tags":["Organization"],"summary":"Search Org Members","description":"Search for shop orders (and its trackings if any) based on filters.","operationId":"v1.orgs.members.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the org","title":"Slug"},"description":"The slug identifying the org"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"List of org members that matches the search criteria","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserDTO-Input"},"title":"Response 200 V1.Orgs.Members.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/orgs/{slug}/invite":{"post":{"tags":["Organization"],"summary":"Invite User To Org","description":"Invite a user to an organization.","operationId":"v1.orgs.invite","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgUserInviteCreationDTO","description":"The user to invite"}}}},"responses":{"200":{"description":"Successfully invited user to organization","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/products":{"get":{"tags":["Product"],"summary":"List Shop Products","description":"List all product variants for a shop with pagination.\n\n    Returns a simple list of products.","operationId":"v1.shops.products.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"description":"Current page","default":1,"title":"Page"},"description":"Current page"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"description":"Items per page","default":30,"title":"Per Page"},"description":"Items per page"},{"name":"title","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"Product title","title":"Title"},"description":"Product title"},{"name":"product_id","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"Product ID to filter by","title":"Product Id"},"description":"Product ID to filter by"},{"name":"sku","in":"query","required":false,"schema":{"type":"string","nullable":true,"description":"SKU to filter by","title":"Sku"},"description":"SKU to filter by"},{"name":"uuids","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","format":"uuid"},"nullable":true,"description":"Filter to specific shop_product UUIDs (variants).","title":"Uuids"},"description":"Filter to specific shop_product UUIDs (variants)."}],"responses":{"200":{"description":"Products retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShopProductDTO-Input"},"title":"Response 200 V1.Shops.Products.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Product"],"summary":"Bulk Upsert Product Variants","description":"Create or update multiple product variants in bulk.\n\n    This endpoint accepts a list of product variants and upserts them.\n    If a variant already exists (matched by product_id + variant_id),\n    it will be updated. Otherwise, a new variant will be created.","operationId":"v1.products.bulk_upsert","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShopProductUpsertRequestDTO"},"minItems":1,"description":"Product variants to upsert","title":"Variants"}}}},"responses":{"200":{"description":"Product variants upserted successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShopProductDTO-Input"},"title":"Response 200 V1.Products.Bulk Upsert"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/products/{product_id}/variants/{variant_id}":{"get":{"tags":["Product"],"summary":"Get Product Variant","description":"Get a single product variant by its product ID and variant ID.\n\n    Both IDs come from your shop provider (Shopify, Shopware, etc.).","operationId":"v1.products.get_variant","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id"},"description":"Product ID from the shop provider"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id"},"description":"Variant ID from the shop provider"}],"responses":{"200":{"description":"Product variant retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopProductDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop or variant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Product"],"summary":"Upsert Product Variant","description":"Create or update a single product variant.\n\n    This endpoint uses PUT semantics: it will create the variant if it doesn't exist,\n    or replace it entirely if it does. This operation is idempotent.\n\n    The product_id and variant_id are provided in the URL path,\n    not in the request body, following RESTful design principles.","operationId":"v1.products.upsert_variant","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id"},"description":"Product ID from the shop provider"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id"},"description":"Variant ID from the shop provider"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopProductVariantUpdateDTO","description":"Product variant data (IDs come from URL path)"}}}},"responses":{"200":{"description":"Product variant upserted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopProductDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Product"],"summary":"Delete Product Variant","description":"Delete a single product variant.\n\n    This deletes only the specific variant, not the entire product or other variants.","operationId":"v1.products.delete_variant","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id"},"description":"Product ID from the shop provider"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id"},"description":"Variant ID from the shop provider"}],"responses":{"204":{"description":"Product variant deleted successfully"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/products/{product_id}":{"delete":{"tags":["Product"],"summary":"Delete Product and All Variants","description":"Delete a product and all its variants by product ID.\n\n    This is a cascade delete operation that removes the parent product\n    and all associated variants.","operationId":"v1.products.delete_product","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id"},"description":"Product ID from the shop provider"}],"responses":{"204":{"description":"Product deleted successfully"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/products/{product_id}/recommendations":{"get":{"tags":["Product"],"summary":"Get Product Recommendations","description":"Get product recommendations for a specific product.\n\n    This endpoint returns recommended products based on the given product ID.\n    The recommendations are retrieved from the shop provider (e.g., Shopify).","operationId":"v1.shops.products.recommendations","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the product to get recommendations for","title":"Product Id"},"description":"The ID of the product to get recommendations for"}],"responses":{"200":{"description":"Product recommendations retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyRecommendationsResponseDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/returns/labels":{"post":{"tags":["Returns"],"summary":"Create Return Label","description":"Generate a return label and register its tracking number with aggregators.","operationId":"v1.shops.returns.labels.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateReturnLabelRequestDTO","description":"Order reference + the returning customer's shipper address."}}}},"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateReturnLabelResponseDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/segments":{"get":{"tags":["Segment"],"summary":"Get Segments By Email","description":"Get the cached CRM segment memberships for a customer email.\n\nSegments are resolved at order-ingestion time and cached for 7 days; this\nendpoint is a thin read over that cache (no Klaviyo call, no database\nread), intended for latency-bounded callers like the post-purchase upsell.\nA null `segments` value means nothing is cached for this email.","operationId":"v1.segments.get_by_email","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"email","in":"query","required":true,"schema":{"type":"string","maxLength":254,"description":"The customer email the segments were cached under","title":"Email"},"description":"The customer email the segments were cached under"}],"responses":{"200":{"description":"Successfully retrieved the cached segment memberships","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentMembershipDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shipment-event-types":{"get":{"tags":["Shipment Event Types"],"summary":"List Shipment Event Types","description":"List the catalog of shipment event types Karla can emit.\n\nPublic (unauthenticated) — a static, non-sensitive vocabulary that feeds\nthe portal event-picker and the docs, mirroring the email-template\nvariables endpoint. Internal event keys are never exposed.","operationId":"v1.shipment_event_types.list","responses":{"200":{"description":"Catalog of shipment event types Karla can emit","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ShipmentEventTypeDTO"},"type":"array","title":"Response 200 V1.Shipment Event Types.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/shipments":{"get":{"tags":["Shipment"],"summary":"Search Shipments","description":"Search and filter shipments for a specific shop.\n\n    This endpoint supports filtering by tracking number, date ranges,\n    and sorting. Results are paginated with a default 30-day lookback window.\n\n    **Important**: The `updated_from` filter has a maximum lookback of 90 days.\n    If not specified, it defaults to 30 days ago.","operationId":"v1.shipments.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"tracking_number","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Tracking Number"}},{"name":"updated_from","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Updated From"}},{"name":"updated_to","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Updated To"}},{"name":"created_from","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Created From"}},{"name":"created_to","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Created To"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"-updated_at","title":"Sort"}},{"name":"include_drafts","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Drafts"}}],"responses":{"200":{"description":"Paginated list of shipments matching the search criteria","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentsPaginatedResponse"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Shipment"],"summary":"Create Shipment","description":"Create a new shipment for an existing order.\n\n    This endpoint supports two modes:\n\n    **Fulfilled Shipment** (with `tracking_number`):\n    Creates a shipment with tracking information that will be submitted to\n    aggregators for tracking updates. Triggers an `ORDER_PROCESSED` event.\n\n    **Draft Shipment** (without `tracking_number`):\n    Creates a placeholder shipment without tracking. Use this when you know\n    an order will be split into multiple shipments but don't have tracking yet.\n    Triggers an `ORDER_CREATED` event. Call this endpoint multiple times to\n    create multiple draft shipments.\n\n    **Order Identification**: Use `order_id` with `order_id_type` to specify\n    which order the shipment belongs to:\n    - `uuid`: Karla's internal order UUID\n    - `external_id`: External platform order ID (e.g., Shopify order ID)\n    - `order_number`: Merchant-visible order number\n    - `order_name`: Platform-specific order name (e.g., Shopify's F-2025-31066)\n\n    **Carrier Detection**: If `carrier_reference` is not provided, the carrier\n    will be automatically detected from the tracking number pattern.","operationId":"v1.shipments.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateShipmentRequestDTO","description":"Shipment creation data"}}}},"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentResponseDTO-Output"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"201":{"description":"Successfully created shipment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentResponseDTO-Input"}}}}}}},"/v1/shops/{slug}/shipments/events":{"post":{"tags":["Shipment"],"summary":"Create Shipment Event","description":"Create a new event for a shipment, identified by a reference field.\n\n    The shipment is resolved using the `id` and `id_type` fields in the\n    request body. Supported reference types: `tracking_number` (default),\n    `shipment_uuid`, `external_shipment_id`, `order_number`,\n    `external_order_id`, `order_uuid`.\n\n    **Order-based lookups** (`order_number`, `external_order_id`, `order_uuid`)\n    require a single shipment per order. If multiple shipments exist for the\n    order, the request will return a 404 error — use `shipment_uuid` or\n    `tracking_number` instead.\n\n    **Duplicate detection**: If an identical event already exists on the\n    shipment (same event key and time), the request returns a 409 Conflict.\n\n    **Notifications**: Set `notify=true` to trigger a shipment update\n    notification after the event is created.\n\n    See [Shipment Events](https://docs.gokarla.io/platform/features/events)\n    for the full list of supported event names.","operationId":"v1.shipment.events.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"notify","in":"query","required":false,"schema":{"type":"boolean","description":"Trigger notification after event creation","default":false,"title":"Notify"},"description":"Trigger notification after event creation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentAddEventRequestDTO","description":"Event data"}}}},"responses":{"200":{"description":"Successfully created shipment event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingSchema-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/shipments/{shipment_id}/events":{"post":{"tags":["Shipment"],"summary":"Create Shipment Event by UUID","description":"Create a new event for a shipment, identified by its UUID in the path.\n\n    This is a convenience alternative to the reference-based endpoint.\n    The shipment UUID is passed directly in the URL path instead of the\n    request body.\n\n    **Duplicate detection**: If an identical event already exists on the\n    shipment (same event key and time), the request returns a 409 Conflict.\n\n    **Notifications**: Set `notify=true` to trigger a shipment update\n    notification after the event is created.\n\n    See [Shipment Events](https://docs.gokarla.io/platform/features/events)\n    for the full list of supported event names.","operationId":"v1.shipment.events.create_by_id","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"shipment_id","in":"path","required":true,"schema":{"type":"string","description":"Shipment UUID","title":"Shipment Id"},"description":"Shipment UUID"},{"name":"notify","in":"query","required":false,"schema":{"type":"boolean","description":"Trigger notification after event creation","default":false,"title":"Notify"},"description":"Trigger notification after event creation"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentEventBaseDTO","description":"Event data"}}}},"responses":{"200":{"description":"Successfully created shipment event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingSchema-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/shopify/webhooks":{"post":{"tags":["Shopify"],"summary":"Create Shopify Webhook","description":"Create a webhook if it does not exist.","operationId":"v1.shopify.webhooks.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookCreationDTO","description":"The Webhook data"}}}},"responses":{"200":{"description":"Successfully created a shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Shopify"],"summary":"Search Shopify Webhooks","description":"Get a shopify webhooks based on its uuid.","operationId":"v1.shopify.webhooks.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}}],"responses":{"200":{"description":"Successfully retrieved shopify webhooks","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDTO"},"title":"Response 200 V1.Shopify.Webhooks.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/shopify/webhooks/{uuid}":{"get":{"tags":["Shopify"],"summary":"Get Shopify Webhook By Uuid","description":"Get a shopify webhooks based on its uuid.","operationId":"v1.shopify.webhooks.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The Webhook's UUID","title":"Uuid"},"description":"The Webhook's UUID"}],"responses":{"200":{"description":"Successfully retrieved a shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shopify"],"summary":"Delete Shopify Webhook By Uuid","description":"Delete a webhook that already exists.","operationId":"v1.shopify.webhooks.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid"},"description":"The webhook's unique identifier"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"204":{"description":"Successfully deleted a shopify webhook"}}}},"/v1/shops/{slug}/shopify/webhooks/webhook-type/{webhook_type}":{"get":{"tags":["Shopify"],"summary":"Get Shopify Webhook By Type","description":"Get a shopify webhooks based on its type.","operationId":"v1.shopify.webhooks.webhook-type.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"webhook_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShopifyWebhookType","description":"The shopify webhook topic path"},"description":"The shopify webhook topic path"}],"responses":{"200":{"description":"Successfully retrieved a shopify webhook by type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shopify"],"summary":"Delete Shopify Webhook By Type","description":"Delete a webhook that already exists.","operationId":"v1.shopify.webhooks.webhook-type.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"webhook_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShopifyWebhookType","description":"The shopify webhook topic path"},"description":"The shopify webhook topic path"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"204":{"description":"Successfully deleted a shopify webhook by type"}}}},"/v1/shops":{"post":{"tags":["Shop"],"summary":"Create Shop","description":"Create a shop if it does not exist.","operationId":"v1.shops.create","security":[{"HTTPBasic":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopCreationDTO","description":"Merchant creation payload."}}}},"responses":{"200":{"description":"Successfully created a shop","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Shop"],"summary":"Search Shops","description":"Search shops based on some values to filter.","operationId":"v1.shops.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Uuid"}},{"name":"name","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Name"}},{"name":"slug","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Slug"}},{"name":"shop_provider","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ShopProvider","nullable":true,"title":"Shop Provider"}},{"name":"language","in":"query","required":false,"schema":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"title":"Language"}},{"name":"organization","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Organization"}}],"responses":{"200":{"description":"Successfully retrieved shops","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShopDetailDTO"},"title":"Response 200 V1.Shops.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}":{"delete":{"tags":["Shop"],"summary":"Delete Shop","description":"Delete a shop that already exists.","operationId":"v1.shops.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully deleted a shop","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop"],"summary":"Update Shop","description":"Update a shop partially or completely.","operationId":"v1.shops.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopUpdateDTO","description":"Merchant update payload."}}}},"responses":{"200":{"description":"Successfully updated a shop","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Shop"],"summary":"Get Shop Detail","description":"Get details about a specific shop.","operationId":"v1.shops.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopDetailDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/billing":{"get":{"tags":["Shop"],"summary":"Get Shop Billing","description":"Get billing information for a specific shop.","operationId":"v1.shops.billing.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved shop billing information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopBillingDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/klaviyo":{"put":{"tags":["Shop"],"summary":"Set Klaviyo Key","description":"Set a klaviyo api key for the shop.","operationId":"v1.shops.keys.klaviyo.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"API key update payload."}}}},"responses":{"200":{"description":"Successfully set Klaviyo key","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Klaviyo Credentials","description":"Disconnect Klaviyo OAuth (revoke + soft-delete tokens; keep legacy key).","operationId":"v1.shops.keys.klaviyo.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/klaviyo/oauth/authorize":{"post":{"tags":["Shop"],"summary":"Klaviyo Oauth Authorize","description":"Generate a Klaviyo OAuth consent URL for the shop to connect.","operationId":"v1.shops.keys.klaviyo.oauth.authorize","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Generated a Klaviyo OAuth consent URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoOAuthAuthorizeDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/klaviyo/oauth/status":{"get":{"tags":["Shop"],"summary":"Klaviyo Oauth Status","description":"Report whether the shop's Klaviyo OAuth connection is present and working.","operationId":"v1.shops.keys.klaviyo.oauth.status","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Klaviyo OAuth connection status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoOAuthStatusDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/shopify":{"put":{"tags":["Shop"],"summary":"Set Shopify Access Token","description":"Set a shopify access token for the shop.","operationId":"v1.shops.keys.shopify.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"API key update payload."}}}},"responses":{"200":{"description":"Successfully set a Shopify access token","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Shopify Access Token","description":"Delete the shopify access token for the shop.","operationId":"v1.shops.keys.shopify.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/shopware":{"put":{"tags":["Shop"],"summary":"Set Shopware Api Credentials","description":"Set shopware api credentials for the shop.","operationId":"v1.shops.keys.shopware.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientIDAndSecretDTO","description":"Client ID and secret update payload."}}}},"responses":{"200":{"description":"Successfully set Shopware API credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Shopware.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/emarsys":{"put":{"tags":["Shop"],"summary":"Set Emarsys Api Credentials","description":"Set emarsys api credentials for the shop.","operationId":"v1.shops.keys.emarsys.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientIDAndSecretDTO","description":"Client ID and secret update payload."}}}},"responses":{"200":{"description":"Successfully set Emarsys API credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Emarsys.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/brevo":{"put":{"tags":["Shop"],"summary":"Set Brevo Api Key","description":"Set a Brevo API key for the shop.","operationId":"v1.shops.keys.brevo.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"API key update payload."}}}},"responses":{"200":{"description":"Successfully set Brevo API key","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Brevo.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/braze":{"put":{"tags":["Shop"],"summary":"Set Braze Api Key","description":"Set a Braze API key for the shop.","operationId":"v1.shops.keys.braze.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"API key update payload."}}}},"responses":{"200":{"description":"Successfully set Braze API key","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Braze.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/inxmail":{"put":{"tags":["Shop"],"summary":"Set Inxmail Basic Auth","description":"Set Inxmail basic auth credentials for the shop.","operationId":"v1.shops.keys.inxmail.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicAuthDTO","description":"Username and password for basic auth."}}}},"responses":{"200":{"description":"Successfully set Inxmail basic auth credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Inxmail.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/hubspot":{"put":{"tags":["Shop"],"summary":"Set Hubspot Api Key","description":"Set a HubSpot Private App access token for the shop.","operationId":"v1.shops.keys.hubspot.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"API key update payload."}}}},"responses":{"200":{"description":"Successfully set HubSpot API key","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Hubspot.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/gorgias":{"put":{"tags":["Shop"],"summary":"Set Gorgias Credentials","description":"Set Gorgias credentials for the shop.","operationId":"v1.shops.keys.gorgias.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailApiKeyDTO","description":"Gorgias credentials update payload."}}}},"responses":{"200":{"description":"Successfully set Gorgias credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Gorgias.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Gorgias Credentials","description":"Delete the Gorgias credentials for the shop.","operationId":"v1.shops.keys.gorgias.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/zendesk":{"put":{"tags":["Shop"],"summary":"Set Zendesk Credentials","description":"Set Zendesk credentials for the shop.","operationId":"v1.shops.keys.zendesk.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailApiKeyDTO","description":"Zendesk credentials update payload."}}}},"responses":{"200":{"description":"Successfully set Zendesk credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Zendesk.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Zendesk Credentials","description":"Delete the Zendesk credentials for the shop.","operationId":"v1.shops.keys.zendesk.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/dixa":{"put":{"tags":["Shop"],"summary":"Set Dixa Credentials","description":"Set the Dixa API token for the shop.","operationId":"v1.shops.keys.dixa.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"Dixa API token update payload."}}}},"responses":{"200":{"description":"Successfully set Dixa credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Dixa.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Dixa Credentials","description":"Delete the Dixa credentials for the shop.","operationId":"v1.shops.keys.dixa.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/superchat":{"put":{"tags":["Shop"],"summary":"Set Superchat Credentials","description":"Set the Superchat API key for the shop.","operationId":"v1.shops.keys.superchat.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"Superchat API key update payload."}}}},"responses":{"200":{"description":"Successfully set Superchat credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Superchat.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Superchat Credentials","description":"Delete the Superchat credentials for the shop.","operationId":"v1.shops.keys.superchat.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/front":{"put":{"tags":["Shop"],"summary":"Set Front Credentials","description":"Set the Front API token for the shop.","operationId":"v1.shops.keys.front.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"Front API token update payload."}}}},"responses":{"200":{"description":"Successfully set Front credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Front.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Front Credentials","description":"Delete the Front credentials for the shop.","operationId":"v1.shops.keys.front.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys/intercom":{"put":{"tags":["Shop"],"summary":"Set Intercom Credentials","description":"Set the Intercom access token for the shop.","operationId":"v1.shops.keys.intercom.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyDTO","description":"Intercom private app access token update payload."}}}},"responses":{"200":{"description":"Successfully set Intercom credentials","content":{"application/json":{"schema":{"title":"Response V1.Shops.Keys.Intercom.Set"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Intercom Credentials","description":"Delete the Intercom credentials for the shop.","operationId":"v1.shops.keys.intercom.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/keys":{"get":{"tags":["Shop"],"summary":"List Keys","description":"List all integration keys for a shop.","operationId":"v1.shops.keys.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopKeysDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/api-keys":{"get":{"tags":["Shop"],"summary":"List Api Keys","description":"List all API keys for a shop.","operationId":"v1.shops.api_keys.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved API keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeysDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Shop"],"summary":"Create Api Key","description":"Create a new API key scoped to the shop.","operationId":"v1.shops.api_keys.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyCreationDTO","description":"API key creation payload."}}}},"responses":{"201":{"description":"Successfully created an API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyCreatedDTO-Input"}}}},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"429":{"description":"Rate limit or resource limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop"],"summary":"Delete Api Key","description":"Delete an API key identified by its token ID.","operationId":"v1.shops.api_keys.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyDeletionDTO","description":"API key deletion payload."}}}},"responses":{"204":{"description":"Successful Response"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/images/{image_type}":{"post":{"tags":["Shop"],"summary":"Upload Shop Image","description":"Upload an image for a shop.","operationId":"v1.shops.images.upload","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"image_type","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ImageType","description":"The type of image to upload"},"description":"The type of image to upload"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/upload"}}}},"responses":{"200":{"description":"Successfully uploaded a shop image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageResponseDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings":{"get":{"tags":["Shop Settings"],"summary":"Get Shop Settings","description":"Get settings for a specific shop.","operationId":"v1.shops.settings.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved shop settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/carriers":{"patch":{"tags":["Shop Settings"],"summary":"Update Shop Carrier Settings","description":"Update carrier settings for a specific shop.","operationId":"v1.shops.settings.carriers.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CarrierSettingsUpdateDTO","description":"The carrier settings to update"}}}},"responses":{"200":{"description":"Successfully updated carrier settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CarrierSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers":{"patch":{"tags":["Shop Settings"],"summary":"Update Shop Trigger Settings","description":"Update trigger settings for a specific shop.","operationId":"v1.shops.settings.triggers.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerSettingsUpdateDTO","description":"The trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/campaigns":{"patch":{"tags":["Shop Settings"],"summary":"Update Shop Campaigns Settings","description":"Update campaign settings for a specific shop.","operationId":"v1.shops.settings.campaigns.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignSettingsUpdateDTO","description":"The campaign settings to update"}}}},"responses":{"200":{"description":"Successfully updated campaigns settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/segments":{"patch":{"tags":["Shop Settings"],"summary":"Update Shop Segment Settings","description":"Update segment settings for a specific shop.","operationId":"v1.shops.settings.segments.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentSettingsUpdateDTO","description":"The segment settings to update"}}}},"responses":{"200":{"description":"Successfully updated segment settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/klaviyo":{"get":{"tags":["Shop Settings"],"summary":"Get Klaviyo Trigger Settings","description":"Get Klaviyo-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.klaviyo.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Klaviyo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Klaviyo Trigger Settings","description":"Update Klaviyo-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.klaviyo.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoTriggerSettingsUpdateDTO","description":"The Klaviyo trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Klaviyo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/emarsys":{"get":{"tags":["Shop Settings"],"summary":"Get Emarsys Trigger Settings","description":"Get Emarsys-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.emarsys.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Emarsys trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmarsysTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Emarsys Trigger Settings","description":"Update Emarsys-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.emarsys.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmarsysTriggerSettingsUpdateDTO","description":"The Emarsys trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Emarsys trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmarsysTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/brevo":{"get":{"tags":["Shop Settings"],"summary":"Get Brevo Trigger Settings","description":"Get Brevo-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.brevo.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Brevo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrevoTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Brevo Trigger Settings","description":"Update Brevo-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.brevo.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrevoTriggerSettingsUpdateDTO","description":"The Brevo trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Brevo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrevoTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/gorgias":{"get":{"tags":["Shop Settings"],"summary":"Get Gorgias Trigger Settings","description":"Get Gorgias-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.gorgias.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Gorgias trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GorgiasTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Gorgias Trigger Settings","description":"Update Gorgias-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.gorgias.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GorgiasTriggerSettingsUpdateDTO","description":"The Gorgias trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Gorgias trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GorgiasTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/zendesk":{"get":{"tags":["Shop Settings"],"summary":"Get Zendesk Trigger Settings","description":"Get Zendesk-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.zendesk.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Zendesk trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZendeskTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Zendesk Trigger Settings","description":"Update Zendesk-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.zendesk.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZendeskTriggerSettingsUpdateDTO","description":"The Zendesk trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Zendesk trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ZendeskTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/dixa":{"get":{"tags":["Shop Settings"],"summary":"Get Dixa Trigger Settings","description":"Get Dixa-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.dixa.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Dixa trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DixaTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Dixa Trigger Settings","description":"Update Dixa-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.dixa.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DixaTriggerSettingsUpdateDTO","description":"The Dixa trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Dixa trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DixaTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/superchat":{"get":{"tags":["Shop Settings"],"summary":"Get Superchat Trigger Settings","description":"Get Superchat-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.superchat.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Superchat trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperchatTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Superchat Trigger Settings","description":"Update Superchat-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.superchat.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperchatTriggerSettingsUpdateDTO","description":"The Superchat trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Superchat trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuperchatTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/front":{"get":{"tags":["Shop Settings"],"summary":"Get Front Trigger Settings","description":"Get Front-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.front.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Front trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrontTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Front Trigger Settings","description":"Update Front-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.front.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrontTriggerSettingsUpdateDTO","description":"The Front trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Front trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FrontTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/intercom":{"get":{"tags":["Shop Settings"],"summary":"Get Intercom Trigger Settings","description":"Get Intercom-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.intercom.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Intercom trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntercomTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Intercom Trigger Settings","description":"Update Intercom-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.intercom.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntercomTriggerSettingsUpdateDTO","description":"The Intercom trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Intercom trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntercomTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/email-helpdesk":{"get":{"tags":["Shop Settings"],"summary":"Get Email Helpdesk Trigger Settings","description":"Get email helpdesk fallback trigger settings for a shop.","operationId":"v1.shops.settings.triggers.email_helpdesk.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved email helpdesk trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailHelpdeskTriggerSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Email Helpdesk Trigger Settings","description":"Update email helpdesk fallback trigger settings for a shop.","operationId":"v1.shops.settings.triggers.email_helpdesk.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailHelpdeskTriggerSettingsUpdateDTO","description":"The email helpdesk trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated email helpdesk trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailHelpdeskTriggerSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/claim-resolution":{"get":{"tags":["Shop Settings"],"summary":"Get Claim Resolution Trigger Settings","description":"Get claim resolution automation trigger settings for a shop.","operationId":"v1.shops.settings.triggers.claim_resolution.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved claim resolution trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResolutionTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Claim Resolution Trigger Settings","description":"Update claim resolution automation trigger settings for a shop.","operationId":"v1.shops.settings.triggers.claim_resolution.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResolutionTriggerSettingsUpdateDTO","description":"The claim resolution trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated claim resolution trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResolutionTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/inxmail":{"get":{"tags":["Shop Settings"],"summary":"Get Inxmail Trigger Settings","description":"Get Inxmail-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.inxmail.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Inxmail trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InxmailTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Inxmail Trigger Settings","description":"Update Inxmail-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.inxmail.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InxmailTriggerSettingsUpdateDTO","description":"The Inxmail trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Inxmail trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InxmailTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/braze":{"get":{"tags":["Shop Settings"],"summary":"Get Braze Trigger Settings","description":"Get Braze-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.braze.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Braze trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrazeTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Braze Trigger Settings","description":"Update Braze-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.braze.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrazeTriggerSettingsUpdateDTO","description":"The Braze trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Braze trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrazeTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/hubspot":{"get":{"tags":["Shop Settings"],"summary":"Get Hubspot Trigger Settings","description":"Get HubSpot-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.hubspot.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved HubSpot trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubSpotTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Hubspot Trigger Settings","description":"Update HubSpot-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.hubspot.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubSpotTriggerSettingsUpdateDTO","description":"The HubSpot trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated HubSpot trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubSpotTriggerSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/shopify":{"get":{"tags":["Shop Settings"],"summary":"Get Shopify Trigger Settings","description":"Get Shopify-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.shopify.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved Shopify trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyTriggerSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Shopify Trigger Settings","description":"Update Shopify-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.shopify.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyTriggerSettingsUpdateDTO","description":"The Shopify trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated Shopify trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyTriggerSettingsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/{integration}/internal-triggers":{"get":{"tags":["Shop Settings"],"summary":"List Internal Triggers","description":"List all internal triggers for a specific integration.","operationId":"v1.shops.settings.triggers.internal_triggers.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotificationThirdParty","description":"The integration name (klaviyo, emarsys, brevo, etc.)"},"description":"The integration name (klaviyo, emarsys, brevo, etc.)"}],"responses":{"200":{"description":"Successfully retrieved internal triggers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"title":"Response 200 V1.Shops.Settings.Triggers.Internal Triggers.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"post":{"tags":["Shop Settings"],"summary":"Create Internal Trigger","description":"Create a new internal trigger for a specific integration.","operationId":"v1.shops.settings.triggers.internal_triggers.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotificationThirdParty","description":"The integration name (klaviyo, emarsys, brevo, etc.)"},"description":"The integration name (klaviyo, emarsys, brevo, etc.)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTriggerCreationDTO","description":"The internal trigger to create"}}}},"responses":{"201":{"description":"Successfully created internal trigger","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTrigger-Input"}}}},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/triggers/{integration}/internal-triggers/{trigger_id}":{"get":{"tags":["Shop Settings"],"summary":"Get Internal Trigger","description":"Get a specific internal trigger for a specific integration.","operationId":"v1.shops.settings.triggers.internal_triggers.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotificationThirdParty","description":"The integration name (klaviyo, emarsys, brevo, etc.)"},"description":"The integration name (klaviyo, emarsys, brevo, etc.)"},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the internal trigger","title":"Trigger Id"},"description":"The ID of the internal trigger"}],"responses":{"200":{"description":"Successfully retrieved internal trigger","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTrigger-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Shop Settings"],"summary":"Update Internal Trigger","description":"Update a specific internal trigger for a specific integration.","operationId":"v1.shops.settings.triggers.internal_triggers.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotificationThirdParty","description":"The integration name (klaviyo, emarsys, brevo, etc.)"},"description":"The integration name (klaviyo, emarsys, brevo, etc.)"},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the internal trigger","title":"Trigger Id"},"description":"The ID of the internal trigger"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTriggerCreationDTO","description":"The internal trigger updates"}}}},"responses":{"200":{"description":"Successfully updated internal trigger","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTrigger-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Shop Settings"],"summary":"Delete Internal Trigger","description":"Delete a specific internal trigger for a specific integration.","operationId":"v1.shops.settings.triggers.internal_triggers.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"integration","in":"path","required":true,"schema":{"$ref":"#/components/schemas/NotificationThirdParty","description":"The integration name (klaviyo, emarsys, brevo, etc.)"},"description":"The integration name (klaviyo, emarsys, brevo, etc.)"},{"name":"trigger_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the internal trigger","title":"Trigger Id"},"description":"The ID of the internal trigger"}],"responses":{"204":{"description":"Successfully deleted internal trigger"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/brand-palette/colors":{"get":{"tags":["Shop Settings"],"summary":"Get Brand Palette Colors","description":"Get brand palette colors for a shop.","operationId":"v1.shops.settings.brand_palette.colors.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved brand palette colors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandPaletteColorsDTO","nullable":true,"title":"Response V1.Shops.Settings.Brand Palette.Colors.Get"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Brand Palette Colors","description":"Update brand palette colors for a shop.\n\nAllows partial updates - only provided color fields will be updated.\nExample: { \"primary_dark\": \"#FF0000\" } updates only primary_dark.","operationId":"v1.shops.settings.brand_palette.colors.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandPaletteColorsUpdateDTO","description":"The brand palette colors to update"}}}},"responses":{"200":{"description":"Successfully updated brand palette colors","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandPaletteColorsDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/mappings":{"get":{"tags":["Shop Settings"],"summary":"Get Shop Mappings","description":"Get mappings settings for a shop.","operationId":"v1.shops.settings.mappings.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved mappings settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseMappingsSettings-Input","nullable":true,"title":"Response V1.Shops.Settings.Mappings.Get"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Shop Settings"],"summary":"Set Shop Mappings","description":"Set mappings settings for a shop.","operationId":"v1.shops.settings.mappings.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseMappingsSettings-Input","description":"Mappings settings payload."}}}},"responses":{"200":{"description":"Successfully updated mappings settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalShopSettingsDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/theme":{"get":{"tags":["Trackpages Settings"],"summary":"Get Trackpages Theme","description":"Get the current trackpages theme for a shop.","operationId":"v1.shops.settings.trackpages.theme.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved trackpages theme","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesThemeDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Settings"],"summary":"Set Trackpages Theme","description":"Set the trackpages theme for a shop.","operationId":"v1.shops.settings.trackpages.theme.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesThemeDTO","description":"The theme to apply"}}}},"responses":{"200":{"description":"Successfully set trackpages theme","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesThemeDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/border-radius":{"get":{"tags":["Trackpages Settings"],"summary":"Get Trackpages Border Radius","description":"Get the current trackpages border radius settings for a shop.","operationId":"v1.shops.settings.trackpages.border_radius.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved border radius settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesBorderRadiusDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Trackpages Settings"],"summary":"Update Trackpages Border Radius","description":"Update trackpages border radius settings for a shop.\n\n- widget_corner_px: Border radius for widgets in pixels\n- button_corner_px: Border radius for buttons in pixels (Tailwind conversion)","operationId":"v1.shops.settings.trackpages.border_radius.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesBorderRadiusDTO","description":"The border radius settings to update"}}}},"responses":{"200":{"description":"Successfully updated border radius settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesBorderRadiusDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/metadata":{"get":{"tags":["Trackpages Settings"],"summary":"Get Trackpages Metadata","description":"Get the current trackpages page metadata for a shop.","operationId":"v1.shops.settings.trackpages.metadata.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved page metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesMetadataDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Trackpages Settings"],"summary":"Update Trackpages Metadata","description":"Update trackpages page metadata for a shop.\n\nAllows partial updates - only provided fields will be updated.","operationId":"v1.shops.settings.trackpages.metadata.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesMetadataDTO","description":"The page metadata to update"}}}},"responses":{"200":{"description":"Successfully updated page metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesMetadataDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/font":{"get":{"tags":["Trackpages Settings"],"summary":"Get Trackpages Font","description":"Get the current trackpages font for a shop.","operationId":"v1.shops.settings.trackpages.font.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved font setting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesFontDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Settings"],"summary":"Set Trackpages Font","description":"Set the trackpages font for a shop.\n\nThe font is a string with no validation - the system will fallback\nto the system font if the specified font is not available.","operationId":"v1.shops.settings.trackpages.font.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesFontDTO","description":"The font to set"}}}},"responses":{"200":{"description":"Successfully set font","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesFontDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/tracking-events":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Tracking Events Widget","description":"Get the tracking-events widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.tracking_events.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved tracking events widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Tracking Events Widget","description":"Set the tracking-events widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.tracking_events.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventsWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set tracking events widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Tracking Events Widget","description":"Delete the tracking-events widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.tracking_events.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/order-summary":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Order Summary Widget","description":"Get the order-summary widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_summary.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved order summary widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSummaryWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Order Summary Widget","description":"Set the order-summary widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_summary.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSummaryWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set order summary widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSummaryWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Order Summary Widget","description":"Delete the order-summary widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_summary.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/basic-promotion":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Basic Promotion Widget","description":"Get the basic-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.basic_promotion.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved basic promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Basic Promotion Widget","description":"Set the basic-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.basic_promotion.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicPromotionWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set basic promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Basic Promotion Widget","description":"Delete the basic-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.basic_promotion.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/product-promotion":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Product Promotion Widget","description":"Get the product-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.product_promotion.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved product promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Product Promotion Widget","description":"Set the product-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.product_promotion.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPromotionWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set product promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Product Promotion Widget","description":"Delete the product-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.product_promotion.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/order-finder":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Order Finder Widget","description":"Get the order-finder widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_finder.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved order finder widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFinderWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Order Finder Widget","description":"Set the order-finder widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_finder.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFinderWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set order finder widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFinderWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Order Finder Widget","description":"Delete the order-finder widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.order_finder.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/banner-promotion":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Banner Promotion Widget","description":"Get the banner-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.banner_promotion.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved banner promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BannerPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Banner Promotion Widget","description":"Set the banner-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.banner_promotion.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BannerPromotionWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set banner promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BannerPromotionWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Banner Promotion Widget","description":"Delete the banner-promotion widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.banner_promotion.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/notification-banner":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Notification Banner Widget","description":"Get the notification-banner widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.notification_banner.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved notification banner widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationBannerWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Notification Banner Widget","description":"Set the notification-banner widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.notification_banner.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationBannerWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set notification banner widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationBannerWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Notification Banner Widget","description":"Delete the notification-banner widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.notification_banner.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/survey":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Survey Widget","description":"Get the survey widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.survey.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved survey widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Survey Widget","description":"Set the survey widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.survey.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set survey widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Survey Widget","description":"Delete the survey widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.survey.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/deals":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Deals Widget","description":"Get the deals widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.deals.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved deals widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Deals Widget","description":"Set the deals widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.deals.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealsWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set deals widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Deals Widget","description":"Delete the deals widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.deals.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/settings/trackpages/widgets/reviews":{"get":{"tags":["Trackpages Widgets"],"summary":"Get Reviews Widget","description":"Get the reviews widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.reviews.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved reviews widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"put":{"tags":["Trackpages Widgets"],"summary":"Set Reviews Widget","description":"Set the reviews widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.reviews.set","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewsWidgetDTO"}}}},"responses":{"200":{"description":"Successfully set reviews widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewsWidgetDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"delete":{"tags":["Trackpages Widgets"],"summary":"Delete Reviews Widget","description":"Delete the reviews widget configuration.","operationId":"v1.shops.settings.trackpages.widgets.reviews.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"204":{"description":"Successfully deleted widget configuration"},"200":{"description":"Successfully processed operation"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/users":{"post":{"tags":["User"],"summary":"Add User To Shop","description":"Add a user to a shop with the specified role.","operationId":"v1.users.shop.add","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopUserInviteDTO","description":"User invitation payload."}}}},"responses":{"200":{"description":"Successfully added user to shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDTO-Input"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["User"],"summary":"List Shop Users","description":"List all users assigned to a specific shop.","operationId":"v1.users.shop.list","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of items per page","default":25,"title":"Per Page"},"description":"Number of items per page"}],"responses":{"200":{"description":"Successfully retrieved users for shop","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserDTO-Input"},"title":"Response 200 V1.Users.Shop.List"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/users/{user_id}":{"delete":{"tags":["User"],"summary":"Remove User From Shop","description":"Remove a user from a shop.","operationId":"v1.users.shop.remove","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The UUID of the user to remove","title":"User Id"},"description":"The UUID of the user to remove"}],"responses":{"200":{"description":"Successfully removed user from shop","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/webhooks":{"post":{"tags":["Webhook"],"summary":"Create Webhook","description":"Create a webhook if it does not exist.","operationId":"v1.webhooks.create","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreationDTO","description":"Webhook creation payload."}}}},"responses":{"200":{"description":"Successfully created a webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"get":{"tags":["Webhook"],"summary":"Search Webhooks","description":"Search all webhooks or based on some values to filter.","operationId":"v1.webhooks.search","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","exclusiveMinimum":0,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":100,"exclusiveMinimum":0,"default":30,"title":"Per Page"}},{"name":"uuid","in":"query","required":false,"schema":{"type":"string","format":"uuid","nullable":true,"title":"Uuid"}},{"name":"status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/WebhookStatus","nullable":true,"title":"Status"}},{"name":"url","in":"query","required":false,"schema":{"type":"string","format":"uri","minLength":1,"nullable":true,"title":"Url"}}],"responses":{"200":{"description":"Successfully retrieved webhooks","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDTO"},"title":"Response 200 V1.Webhooks.Search"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop related to the webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/webhooks/{uuid}":{"delete":{"tags":["Webhook"],"summary":"Delete Webhook","description":"Delete a webhook that already exists.","operationId":"v1.webhooks.delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid"},"description":"The webhook's unique identifier"}],"responses":{"200":{"description":"Successfully deleted a webhook","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}},"patch":{"tags":["Webhook"],"summary":"Update Webhook","description":"Update a webhook partially or completely.","operationId":"v1.webhooks.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid"},"description":"The webhook's unique identifier"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdateDTO","description":"Webhook update payload."}}}},"responses":{"200":{"description":"Successfully updated a webhook","content":{"application/json":{"schema":{}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}},"/v1/shops/{slug}/woocommerce/webhook-config":{"get":{"tags":["WooCommerce"],"summary":"Get Webhook Config","description":"Get WooCommerce webhook configuration for a shop.\n\nReturns the delivery URL and webhook secret that should be used when\nconfiguring a WooCommerce Order Created webhook.","operationId":"v1.woocommerce.webhook-config.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug"},"description":"The slug identifying the shop"}],"responses":{"200":{"description":"Successfully retrieved WooCommerce webhook configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WooCommerceWebhookConfigDTO"}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"}}}}}}}},"components":{"schemas":{"ABTestCampaignCreateDTO":{"properties":{"campaign_id":{"type":"string","format":"uuid","title":"Campaign Id","description":"UUID of the campaign to include in the AB test","examples":["550e8400-e29b-41d4-a716-446655440001"]},"allocation":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Allocation","description":"Percentage split for this campaign (0-100)","examples":[50,25,100]}},"type":"object","required":["campaign_id","allocation"],"title":"ABTestCampaignCreateDTO","description":"Data required to create an AB test campaign."},"ABTestCampaignResponseDTO-Input":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Campaign visibility toggle. Only one campaign can be enabled per segment at a time.","default":false},"name":{"type":"string","title":"Name","description":"Campaign name to be used internally","examples":["Q3 Campaign"]},"start_date":{"type":"string","format":"date-time","title":"Start Date","description":"Time in which the campaign will start (defaults to now)","examples":["2024-10-01T00:00:00Z"]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time in which the campaign will end","examples":["2024-10-11T00:00:00Z"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the campaign is targeted","examples":["b2b"]},"promotion_type":{"$ref":"#/components/schemas/PromotionType","description":"Type of promotion"},"promotion_properties":{"anyOf":[{"$ref":"#/components/schemas/BasicPromotionPropertiesDTO-Input"},{"$ref":"#/components/schemas/ProductPromotionPropertiesResponseDTO-Input"},{"$ref":"#/components/schemas/BannerPromotionPropertiesDTO-Input"}],"title":"Promotion Properties"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Campaign UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop Slug","examples":["gokarla"]},"status":{"$ref":"#/components/schemas/CampaignStatus","description":"The status of the campaign","examples":["active"]},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"The discount attached to the campaign","examples":[{"code":"MYCODE10","type":"order","uuid":"def3b49c-9268-4aaa-959c-ea2bb8c66f55","value":10.0,"value_type":"percentage"}]},"allocation":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Allocation","description":"Percentage split for this campaign (0-100)"}},"type":"object","required":["name","start_date","segment","promotion_type","promotion_properties","uuid","shop_slug","status","allocation"],"title":"ABTestCampaignResponseDTO","description":"Response data for an AB test campaign."},"ABTestCampaignResponseDTO-Output":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Campaign visibility toggle. Only one campaign can be enabled per segment at a time.","default":false},"name":{"type":"string","title":"Name","description":"Campaign name to be used internally","examples":["Q3 Campaign"]},"start_date":{"type":"string","format":"date-time","title":"Start Date","description":"Time in which the campaign will start (defaults to now)","examples":["2024-10-01T00:00:00Z"]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time in which the campaign will end","examples":["2024-10-11T00:00:00Z"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the campaign is targeted","examples":["b2b"]},"promotion_type":{"$ref":"#/components/schemas/PromotionType","description":"Type of promotion"},"promotion_properties":{"anyOf":[{"$ref":"#/components/schemas/BasicPromotionPropertiesDTO-Output"},{"$ref":"#/components/schemas/ProductPromotionPropertiesResponseDTO-Output"},{"$ref":"#/components/schemas/BannerPromotionPropertiesDTO-Output"}],"title":"Promotion Properties"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Campaign UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop Slug","examples":["gokarla"]},"status":{"$ref":"#/components/schemas/CampaignStatus","description":"The status of the campaign","examples":["active"]},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"The discount attached to the campaign","examples":[{"code":"MYCODE10","type":"order","uuid":"def3b49c-9268-4aaa-959c-ea2bb8c66f55","value":10.0,"value_type":"percentage"}]},"allocation":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Allocation","description":"Percentage split for this campaign (0-100)"}},"type":"object","required":["name","start_date","segment","promotion_type","promotion_properties","uuid","shop_slug","status","allocation"],"title":"ABTestCampaignResponseDTO","description":"Response data for an AB test campaign."},"ABTestCreationDTO":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the AB test","examples":["Holiday Promotion Test"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the AB test is targeted","examples":["b2b"]},"campaign_type":{"type":"string","title":"Campaign Type","description":"Type of campaign being tested","examples":["product"]},"campaigns":{"items":{"$ref":"#/components/schemas/ABTestCampaignCreateDTO"},"type":"array","title":"Campaigns","description":"List of campaigns and their allocations","examples":[[{"allocation":50,"campaign_id":"550e8400-e29b-41d4-a716-446655440001"},{"allocation":50,"campaign_id":"660e8400-e29b-41d4-a716-446655440002"}]]},"has_holdout":{"type":"boolean","title":"Has Holdout","description":"Whether to include a holdout group","default":false,"examples":[false,true]},"holdout_percentage":{"type":"integer","maximum":100.0,"minimum":0.0,"nullable":true,"title":"Holdout Percentage","description":"Percentage for the holdout group (0-100)","examples":[10,20,null]},"start_date":{"type":"string","format":"date-time","nullable":true,"title":"Start Date","description":"Time when the AB test will start","examples":["2024-02-01T00:00:00Z","2024-03-15T10:30:00Z",null]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time when the AB test will end","examples":["2024-02-29T23:59:59Z","2024-04-15T23:59:59Z",null]}},"type":"object","required":["name","segment","campaign_type","campaigns"],"title":"ABTestCreationDTO","description":"Data required to create a new AB test."},"ABTestResponseDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"AB test UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"name":{"type":"string","title":"Name","description":"Name of the AB test","examples":["Holiday Promotion Test"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug","examples":["shopify-store-1"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the AB test is targeted","examples":["b2b"]},"campaign_type":{"type":"string","title":"Campaign Type","description":"Type of campaign being tested","examples":["product"]},"campaigns":{"items":{"$ref":"#/components/schemas/ABTestCampaignResponseDTO-Input"},"type":"array","title":"Campaigns","description":"List of campaigns and their allocations","examples":[[{"allocation":60,"enabled":true,"end_date":"2024-02-28T23:59:59Z","name":"Holiday Promotion Campaign A","promotion_properties":{"cta_label":"Shop Now","cta_url":"https://shop.example.com/sale?ref=karla","image_url":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","title":"Holiday Sale Campaign A"},"promotion_type":"product","segment":"b2b","shop_slug":"test-shop","start_date":"2024-02-01T00:00:00Z","status":"active","uuid":"550e8400-e29b-41d4-a716-446655440001"},{"allocation":40,"enabled":true,"end_date":"2024-02-28T23:59:59Z","name":"Holiday Promotion Campaign B","promotion_properties":{"cta_label":"Discover New","cta_url":"https://shop.example.com/new?ref=karla","image_url":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","title":"Holiday Sale Campaign B"},"promotion_type":"product","segment":"b2b","shop_slug":"test-shop","start_date":"2024-02-01T00:00:00Z","status":"active","uuid":"550e8400-e29b-41d4-a716-446655440002"}]]},"has_holdout":{"type":"boolean","title":"Has Holdout","description":"Whether the AB test includes a holdout group","default":false,"examples":[false,true]},"holdout_percentage":{"type":"integer","nullable":true,"title":"Holdout Percentage","description":"Percentage for the holdout group (0-100)","examples":[10,20,null]},"start_date":{"type":"string","format":"date-time","nullable":true,"title":"Start Date","description":"Time when the AB test started/will start","examples":["2024-01-15T10:00:00Z","2024-02-01T00:00:00Z",null]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time when the AB test ended/will end","examples":["2024-02-15T10:00:00Z","2024-03-31T23:59:59Z",null]},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when the AB test was created","examples":["2024-01-15T10:00:00Z","2024-01-01T08:30:00Z"]},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Time when the AB test was last updated","examples":["2024-01-15T14:30:00Z","2024-01-20T16:45:00Z"]}},"type":"object","required":["uuid","name","shop_slug","segment","campaign_type","campaigns","created_at","updated_at"],"title":"ABTestResponseDTO","description":"Response data for an AB test."},"ABTestResponseDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"AB test UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"name":{"type":"string","title":"Name","description":"Name of the AB test","examples":["Holiday Promotion Test"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug","examples":["shopify-store-1"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the AB test is targeted","examples":["b2b"]},"campaign_type":{"type":"string","title":"Campaign Type","description":"Type of campaign being tested","examples":["product"]},"campaigns":{"items":{"$ref":"#/components/schemas/ABTestCampaignResponseDTO-Output"},"type":"array","title":"Campaigns","description":"List of campaigns and their allocations","examples":[[{"allocation":60,"enabled":true,"end_date":"2024-02-28T23:59:59Z","name":"Holiday Promotion Campaign A","promotion_properties":{"cta_label":"Shop Now","cta_url":"https://shop.example.com/sale?ref=karla","image_url":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","title":"Holiday Sale Campaign A"},"promotion_type":"product","segment":"b2b","shop_slug":"test-shop","start_date":"2024-02-01T00:00:00Z","status":"active","uuid":"550e8400-e29b-41d4-a716-446655440001"},{"allocation":40,"enabled":true,"end_date":"2024-02-28T23:59:59Z","name":"Holiday Promotion Campaign B","promotion_properties":{"cta_label":"Discover New","cta_url":"https://shop.example.com/new?ref=karla","image_url":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","title":"Holiday Sale Campaign B"},"promotion_type":"product","segment":"b2b","shop_slug":"test-shop","start_date":"2024-02-01T00:00:00Z","status":"active","uuid":"550e8400-e29b-41d4-a716-446655440002"}]]},"has_holdout":{"type":"boolean","title":"Has Holdout","description":"Whether the AB test includes a holdout group","default":false,"examples":[false,true]},"holdout_percentage":{"type":"integer","nullable":true,"title":"Holdout Percentage","description":"Percentage for the holdout group (0-100)","examples":[10,20,null]},"start_date":{"type":"string","format":"date-time","nullable":true,"title":"Start Date","description":"Time when the AB test started/will start","examples":["2024-01-15T10:00:00Z","2024-02-01T00:00:00Z",null]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time when the AB test ended/will end","examples":["2024-02-15T10:00:00Z","2024-03-31T23:59:59Z",null]},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time when the AB test was created","examples":["2024-01-15T10:00:00Z","2024-01-01T08:30:00Z"]},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Time when the AB test was last updated","examples":["2024-01-15T14:30:00Z","2024-01-20T16:45:00Z"]}},"type":"object","required":["uuid","name","shop_slug","segment","campaign_type","campaigns","created_at","updated_at"],"title":"ABTestResponseDTO","description":"Response data for an AB test."},"APIKeyDTO":{"properties":{"api_key":{"type":"string","maxLength":2048,"minLength":16,"title":"Api Key","description":"The api key"}},"type":"object","required":["api_key"],"title":"APIKeyDTO","description":"An api key secret.\n\nThe 2048-char upper bound accommodates JWT-style tokens (e.g. Dixa) while\nstill rejecting unbounded input; short keys (Klaviyo, Shopify, Brevo,\nBraze, HubSpot) stay well within it."},"AdditionalInfo":{"properties":{"pickup_point":{"type":"string","nullable":true,"title":"Pickup Point"},"pickup_point_url":{"type":"string","nullable":true,"title":"Pickup Point Url"},"pickup_time":{"type":"string","format":"date-time","nullable":true,"title":"Pickup Time"},"pickup_opening_hours":{"additionalProperties":{"type":"string"},"type":"object","nullable":true,"title":"Pickup Opening Hours"},"mail_message":{"type":"string","nullable":true,"title":"Mail Message"},"merchant_name":{"type":"string","nullable":true,"title":"Merchant Name"},"preferred_delivery_date":{"type":"string","format":"date-time","nullable":true,"title":"Preferred Delivery Date"},"tracking_link":{"type":"string","nullable":true,"title":"Tracking Link"},"carrier_name":{"type":"string","nullable":true,"title":"Carrier Name"},"tracking_company":{"type":"string","nullable":true,"title":"Tracking Company"}},"type":"object","title":"AdditionalInfo","description":"Schema for a additional info sub-partial for a `Shipment.Event` object.\n\nBased on frontend representation of AdditionalInfo at\nhttps://github.com/gokarla-io/happy-app/blob/develop/lib/models/additional_info.dart#L6."},"Address":{"properties":{"city":{"type":"string","nullable":true,"title":"City","description":"City of the collection point."},"full":{"type":"string","nullable":true,"title":"Full","description":"Full address of the collection point."},"country":{"type":"string","nullable":true,"title":"Country","description":"Country of the collection point."},"location_type":{"type":"string","nullable":true,"title":"Location Type","description":"Type of location."},"postal_code":{"type":"string","nullable":true,"title":"Postal Code","description":"Collection point address' postal code."},"state_or_province":{"type":"string","nullable":true,"title":"State Or Province","description":"Collection point address' state or province."}},"type":"object","title":"Address","description":"Address object schema."},"AddressDTO-Input":{"properties":{"address_line_1":{"type":"string","nullable":true,"title":"Address Line 1","description":"The resident's mailing address","examples":["Teststr. 1"]},"address_line_2":{"type":"string","nullable":true,"title":"Address Line 2","description":"An additional field for the customer's mailing address","examples":["2nd floor"]},"city":{"type":"string","nullable":true,"title":"City","description":"The resident's city","examples":["Berlin"]},"country":{"type":"string","nullable":true,"title":"Country","description":"The resident's country","examples":["Germany"]},"country_code":{"type":"string","nullable":true,"title":"Country Code","description":"The two letter digit resident's country code","examples":["DE"]},"name":{"type":"string","nullable":true,"title":"Name","description":"The first and last names of the resident","examples":["Jane Doe"]},"phone":{"type":"string","nullable":true,"title":"Phone","description":"The resident's phone number","examples":["+49 123 4567890"]},"province":{"type":"string","nullable":true,"title":"Province","description":"The resident's province or state name","examples":["Berlin"]},"province_code":{"type":"string","nullable":true,"title":"Province Code","description":"The resident's province or state name","examples":["BE"]},"street":{"type":"string","nullable":true,"title":"Street","description":"A combination of the first and second lines of the address","examples":["Teststr. 1, 2nd floor"]},"zip_code":{"type":"string","nullable":true,"title":"Zip Code","description":"The address zip or postal code","examples":["10119"]},"company":{"type":"string","nullable":true,"title":"Company","description":"The company recipient","examples":["Example GmbH"]}},"type":"object","title":"AddressDTO","description":"DTO for standardized address objects."},"AddressDTO-Output":{"properties":{"address_line_1":{"title":"Address Line 1","description":"The resident's mailing address","examples":["Teststr. 1"]},"address_line_2":{"title":"Address Line 2","description":"An additional field for the customer's mailing address","examples":["2nd floor"]},"city":{"title":"City","description":"The resident's city","examples":["Berlin"]},"country":{"title":"Country","description":"The resident's country","examples":["Germany"]},"country_code":{"title":"Country Code","description":"The two letter digit resident's country code","examples":["DE"]},"name":{"title":"Name","description":"The first and last names of the resident","examples":["Jane Doe"]},"phone":{"title":"Phone","description":"The resident's phone number","examples":["+49 123 4567890"]},"province":{"title":"Province","description":"The resident's province or state name","examples":["Berlin"]},"province_code":{"title":"Province Code","description":"The resident's province or state name","examples":["BE"]},"street":{"title":"Street","description":"A combination of the first and second lines of the address","examples":["Teststr. 1, 2nd floor"]},"zip_code":{"title":"Zip Code","description":"The address zip or postal code","examples":["10119"]},"company":{"title":"Company","description":"The company recipient","examples":["Example GmbH"]}},"type":"object","title":"AddressDTO","description":"DTO for standardized address objects."},"AddressSchema":{"properties":{"address_line_1":{"type":"string","nullable":true,"title":"Address Line 1","description":"The resident's mailing address","examples":["Teststr. 1"]},"address_line_2":{"type":"string","nullable":true,"title":"Address Line 2","description":"An additional field for the customer's mailing address","examples":["2nd floor"]},"city":{"type":"string","nullable":true,"title":"City","description":"The resident's city","examples":["Berlin"]},"country":{"type":"string","nullable":true,"title":"Country","description":"The resident's country","examples":["Germany"]},"country_code":{"type":"string","nullable":true,"title":"Country Code","description":"The two letter digit resident's country code","examples":["DE"]},"name":{"type":"string","nullable":true,"title":"Name","description":"The first and last names of the resident","examples":["Jane Doe"]},"phone":{"type":"string","nullable":true,"title":"Phone","description":"The resident's phone number","examples":["+49 123 4567890"]},"province":{"type":"string","nullable":true,"title":"Province","description":"The resident's province or state name","examples":["Berlin"]},"province_code":{"type":"string","nullable":true,"title":"Province Code","description":"The resident's province or state name","examples":["BE"]},"street":{"type":"string","nullable":true,"title":"Street","description":"A combination of the first and second lines of the address","examples":["Teststr. 1, 2nd floor"]},"zip_code":{"type":"string","nullable":true,"title":"Zip Code","description":"The address zip or postal code","examples":["10119"]}},"type":"object","title":"AddressSchema","description":"Schema for standardized address objects."},"AddressWithZipCodeDTO":{"properties":{"address_line_1":{"type":"string","nullable":true,"title":"Address Line 1","description":"The resident's mailing address","examples":["Teststr. 1"]},"address_line_2":{"type":"string","nullable":true,"title":"Address Line 2","description":"An additional field for the customer's mailing address","examples":["2nd floor"]},"city":{"type":"string","nullable":true,"title":"City","description":"The resident's city","examples":["Berlin"]},"country":{"type":"string","nullable":true,"title":"Country","description":"The resident's country","examples":["Germany"]},"country_code":{"type":"string","nullable":true,"title":"Country Code","description":"The two letter digit resident's country code","examples":["DE"]},"name":{"type":"string","nullable":true,"title":"Name","description":"The first and last names of the resident","examples":["Jane Doe"]},"phone":{"type":"string","nullable":true,"title":"Phone","description":"The resident's phone number","examples":["+49 123 4567890"]},"province":{"type":"string","nullable":true,"title":"Province","description":"The resident's province or state name","examples":["Berlin"]},"province_code":{"type":"string","nullable":true,"title":"Province Code","description":"The resident's province or state name","examples":["BE"]},"street":{"type":"string","nullable":true,"title":"Street","description":"A combination of the first and second lines of the address","examples":["Teststr. 1, 2nd floor"]},"zip_code":{"type":"string","title":"Zip Code","description":"The address zip or postal code","examples":["10119"]},"company":{"type":"string","nullable":true,"title":"Company","description":"The company recipient","examples":["Example GmbH"]}},"type":"object","required":["zip_code"],"title":"AddressWithZipCodeDTO","description":"DTO for standardized address objects enforcing that a zip code always exists."},"AffidavitCarrier":{"type":"string","enum":["dhl","dpd","gls"],"title":"AffidavitCarrier","description":"Carrier a merchant can pick as their main affidavit carrier.\n\nRestricted to the carriers that have a dedicated PDF template, so a merchant\ncannot select one that would silently route to the neutral fallback. Values\nmirror the corresponding ``CarrierEnum`` references used for template lookup."},"AfterShipEventMappingDTO":{"properties":{"id":{"type":"integer","nullable":true,"title":"Id","description":"Mapping ID"},"tag":{"type":"string","title":"Tag","description":"AfterShip event tag"},"subtag":{"type":"string","title":"Subtag","description":"AfterShip event subtag"},"subtag_message":{"type":"string","title":"Subtag Message","description":"AfterShip event subtag message"},"message":{"type":"string","nullable":true,"title":"Message","description":"NULL for partial, exact text for full, regex pattern for regex"},"event_key":{"type":"string","nullable":true,"title":"Event Key","description":"Mapped Karla event key"},"match_type":{"$ref":"#/components/schemas/MatchType","description":"Match type (full/partial/regex)"},"carrier":{"type":"string","nullable":true,"title":"Carrier","description":"Carrier name"},"status":{"$ref":"#/components/schemas/MappingStatus","description":"Approval status","default":"pending"},"approved_by":{"type":"string","nullable":true,"title":"Approved By","description":"Username/email of approver"},"approved_at":{"type":"string","format":"date-time","nullable":true,"title":"Approved At","description":"Approval timestamp"},"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Last update timestamp"},"matched_groups":{"additionalProperties":{"type":"string"},"type":"object","nullable":true,"title":"Matched Groups","description":"Regex named groups captured from original message (for preview). Example: {'location': 'New York', 'date': '2024-01-15'}"},"examples_with_groups":{"items":{"$ref":"#/components/schemas/ExampleWithGroups"},"type":"array","title":"Examples With Groups","description":"Example messages with extracted regex groups. Only populated for regex mappings. Shows what the regex pattern captures from each example."}},"type":"object","required":["tag","subtag","subtag_message","match_type"],"title":"AfterShipEventMappingDTO","description":"DTO for AfterShip event mapping (API response)."},"AllEvent":{"properties":{"time":{"type":"string","nullable":true,"title":"Time","description":"Date & time of event occurrence."},"event":{"type":"string","nullable":true,"title":"Event","description":"Event's description in English or original event description, depending on how the event was processed."},"location":{"additionalProperties":true,"type":"object","nullable":true,"title":"Location","description":"Object containing the location details of the event."},"timezone":{"type":"string","nullable":true,"title":"Timezone","description":"Timezone description for event's date & time."},"event_key":{"type":"string","nullable":true,"title":"Event Key","description":"Internal event key that references to a unique event type. "},"phase":{"type":"string","nullable":true,"title":"Phase","description":"Phase that the shipment's current event belongs to."},"phase_key":{"type":"string","nullable":true,"title":"Phase Key","description":"Internal key referencing a unique phase"},"carrier_name":{"type":"string","nullable":true,"title":"Carrier Name","description":"Carrier that the event is associated to."},"additional_info":{"additionalProperties":true,"type":"object","nullable":true,"title":"Additional Info","description":"Any additional information or custom fields related to the event."}},"type":"object","title":"AllEvent","description":"All event object schema."},"AnnouncementCreationDTO":{"properties":{"text":{"type":"string","title":"Text","description":"Announcement text","examples":["We are expecting significant delays in today's deliveries due to the storm"]},"language":{"$ref":"#/components/schemas/LanguageEnum","description":"Language for the text strings related to the merchant"}},"type":"object","required":["text","language"],"title":"AnnouncementCreationDTO","description":"The Announcement object to be created."},"AnnouncementDetailDTO":{"properties":{"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Time in which the resource was created","examples":["2024-01-15T10:30:00Z","2023-12-01T08:00:00Z",null]},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Time in which the resource was last updated after creation","examples":["2024-01-16T14:45:00Z","2024-01-15T16:00:00Z",null]},"text":{"type":"string","title":"Text","description":"Announcement text","examples":["We are expecting significant delays in today's deliveries due to the storm"]},"language":{"$ref":"#/components/schemas/LanguageEnum","description":"Language for the text strings related to the merchant"}},"type":"object","required":["text","language"],"title":"AnnouncementDetailDTO","description":"The Announcement data that should not be exposed without authentication."},"AnnouncementUpdateDTO":{"properties":{"text":{"type":"string","nullable":true,"title":"Text","description":"Announcement text","examples":["We are expecting significant delays in today's deliveries due to the storm"]},"language":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Language for the text strings related to the merchant"}},"type":"object","title":"AnnouncementUpdateDTO","description":"The Announcement object to be updated."},"AutomationConditionDTO":{"properties":{"field":{"$ref":"#/components/schemas/AutomationConditionField","description":"Entity attribute to match"},"op":{"$ref":"#/components/schemas/AutomationConditionOperator","description":"Comparison operator"},"value":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}],"title":"Value","description":"Comparison value. List for `in`/`not_in`; string for `equals`"}},"type":"object","required":["field","op","value"],"title":"AutomationConditionDTO","description":"A single condition in an automation. All conditions of an automation AND."},"AutomationConditionField":{"type":"string","enum":["carrier","destination_country","claim_reason"],"title":"AutomationConditionField","description":"Entity attribute an automation condition matches against."},"AutomationConditionOperator":{"type":"string","enum":["equals","in","not_in"],"title":"AutomationConditionOperator","description":"Comparison operator for an automation condition."},"AutomationCreateDTO":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"Merchant-facing label"},"trigger_group":{"$ref":"#/components/schemas/NotificationEventGroup","description":"Event group that fires this automation"},"conditions":{"items":{"$ref":"#/components/schemas/AutomationConditionDTO"},"type":"array","maxItems":20,"title":"Conditions","description":"ANDed conditions; an empty list always fires"},"action":{"$ref":"#/components/schemas/SendEmailActionDTO","description":"What happens when this automation fires"},"is_enabled":{"type":"boolean","title":"Is Enabled","description":"Whether the automation is active on creation","default":true}},"type":"object","required":["name","trigger_group","action"],"title":"AutomationCreateDTO","description":"Request body to create an automation."},"AutomationDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Automation UUID"},"name":{"type":"string","title":"Name","description":"Merchant-facing label"},"trigger_group":{"$ref":"#/components/schemas/NotificationEventGroup","description":"Event group that fires this automation"},"conditions":{"items":{"$ref":"#/components/schemas/AutomationConditionDTO"},"type":"array","title":"Conditions","description":"ANDed conditions; an empty list always fires"},"action":{"$ref":"#/components/schemas/SendEmailActionDTO","description":"What happens when this automation fires"},"is_enabled":{"type":"boolean","title":"Is Enabled","description":"Whether the automation is active"}},"type":"object","required":["uuid","name","trigger_group","action","is_enabled"],"title":"AutomationDTO","description":"A merchant-owned automation: trigger + conditions + action."},"AutomationDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Automation UUID"},"name":{"type":"string","title":"Name","description":"Merchant-facing label"},"trigger_group":{"$ref":"#/components/schemas/NotificationEventGroup","description":"Event group that fires this automation"},"conditions":{"items":{"$ref":"#/components/schemas/AutomationConditionDTO"},"type":"array","title":"Conditions","description":"ANDed conditions; an empty list always fires"},"action":{"$ref":"#/components/schemas/SendEmailActionDTO","description":"What happens when this automation fires"},"is_enabled":{"type":"boolean","title":"Is Enabled","description":"Whether the automation is active"}},"type":"object","required":["uuid","name","trigger_group","action","is_enabled"],"title":"AutomationDTO","description":"A merchant-owned automation: trigger + conditions + action."},"AutomationUpdateDTO":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"nullable":true,"title":"Name","description":"Merchant-facing label"},"trigger_group":{"$ref":"#/components/schemas/NotificationEventGroup","nullable":true,"description":"Event group that fires this automation"},"conditions":{"items":{"$ref":"#/components/schemas/AutomationConditionDTO"},"type":"array","maxItems":20,"nullable":true,"title":"Conditions","description":"ANDed conditions; an empty list always fires"},"action":{"$ref":"#/components/schemas/SendEmailActionDTO","nullable":true,"description":"What happens when this automation fires"},"is_enabled":{"type":"boolean","nullable":true,"title":"Is Enabled","description":"Whether the automation is active"}},"type":"object","title":"AutomationUpdateDTO","description":"Request body to update an automation (partial)."},"BannerPromotionPropertiesDTO-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Super discount"]},"subtitle":{"type":"string","nullable":true,"title":"Subtitle","description":"Promotion Subtitle","examples":["Get 15% off your next order"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label","examples":["New Reward"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink","examples":["https://shop.gokarla.io"]},"discount":{"$ref":"#/components/schemas/ProductSaleDiscountDTO","nullable":true,"description":"Product Discount"},"translations":{"items":{"$ref":"#/components/schemas/BasicPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the promotion strings"}},"type":"object","title":"BannerPromotionPropertiesDTO","description":"The properties of the banner promotion that belongs to a campaign."},"BannerPromotionPropertiesDTO-Output":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Super discount"]},"subtitle":{"type":"string","nullable":true,"title":"Subtitle","description":"Promotion Subtitle","examples":["Get 15% off your next order"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label","examples":["New Reward"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink","examples":["https://shop.gokarla.io"]},"discount":{"$ref":"#/components/schemas/ProductSaleDiscountDTO","nullable":true,"description":"Product Discount"},"translations":{"items":{"$ref":"#/components/schemas/BasicPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the promotion strings"}},"type":"object","title":"BannerPromotionPropertiesDTO","description":"The properties of the banner promotion that belongs to a campaign."},"BannerPromotionWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"enable_arrows":{"type":"boolean","nullable":true,"title":"Enable Arrows","description":"Whether to show navigation arrows"},"enable_animation":{"type":"boolean","nullable":true,"title":"Enable Animation","description":"Whether to enable animations"}},"type":"object","title":"BannerPromotionWidgetDTO","description":"Configuration for the banner-promotion widget."},"BaseBrandPaletteSettings-Input":{"properties":{"colors":{"$ref":"#/components/schemas/BrandPaletteColors-Input","description":"Brand color palette"}},"type":"object","required":["colors"],"title":"BaseBrandPaletteSettings","description":"Base Brand Palette Settings Schema."},"BaseBrandPaletteSettings-Output":{"properties":{"colors":{"description":"Brand color palette"}},"type":"object","required":["colors"],"title":"BaseBrandPaletteSettings","description":"Base Brand Palette Settings Schema."},"BaseCampaignSettings-Input":{"properties":{"version":{"type":"integer","const":1,"title":"Version","description":"Version of the schema","default":1},"data":{"$ref":"#/components/schemas/CampaignSettingsV1-Input","description":"Campaign Settings Data"}},"type":"object","required":["data"],"title":"BaseCampaignSettings","description":"Base Campaign Settings Schema."},"BaseCampaignSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the schema"},"data":{"description":"Campaign Settings Data"}},"type":"object","required":["data"],"title":"BaseCampaignSettings","description":"Base Campaign Settings Schema."},"BaseCarrierSettings-Input":{"properties":{"version":{"type":"integer","const":1,"title":"Version","description":"Version of the schema","default":1},"data":{"$ref":"#/components/schemas/CarrierSettingsV1-Input","description":"Carrier Settings Data"}},"type":"object","required":["data"],"title":"BaseCarrierSettings","description":"Base Carrier Settings Schema."},"BaseCarrierSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the schema"},"data":{"description":"Carrier Settings Data"}},"type":"object","required":["data"],"title":"BaseCarrierSettings","description":"Base Carrier Settings Schema."},"BaseEmailNotificationsSettings-Input":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Gate for sending Karla emails; the send endpoint refuses with 403 when false","default":false},"reply_to_email":{"type":"string","nullable":true,"title":"Reply To Email","description":"Reply-To address; null or invalid values fall back to the From address"},"sender_name":{"type":"string","nullable":true,"title":"Sender Name","description":"From display name; null falls back to the shop name"},"tier":{"$ref":"#/components/schemas/EmailTier","nullable":true,"description":"Email delivery tier; when unset the platform default applies"},"sender_domain":{"type":"string","nullable":true,"title":"Sender Domain","description":"Domain registered as the shop's SES sender identity, possibly still pending verification. Read-only here - written by POST .../email-identity and cleared by DELETE .../email-identity"},"sender_email":{"type":"string","format":"email","nullable":true,"title":"Sender Email","description":"Verified custom From address; only honored on the enterprise tier. Read-only here - managed exclusively through a dedicated sender-verification flow"}},"type":"object","title":"BaseEmailNotificationsSettings","description":"Base Email Notifications Settings Schema.\n\nPer-shop config read by the templated-email send endpoint\n(POST /v1/shops/{slug}/emails): the ``enabled`` gate plus the outgoing\nsender identity."},"BaseEmailNotificationsSettings-Output":{"properties":{"enabled":{"title":"Enabled","description":"Gate for sending Karla emails; the send endpoint refuses with 403 when false"},"reply_to_email":{"title":"Reply To Email","description":"Reply-To address; null or invalid values fall back to the From address"},"sender_name":{"title":"Sender Name","description":"From display name; null falls back to the shop name"},"tier":{"description":"Email delivery tier; when unset the platform default applies"},"sender_domain":{"title":"Sender Domain","description":"Domain registered as the shop's SES sender identity, possibly still pending verification. Read-only here - written by POST .../email-identity and cleared by DELETE .../email-identity"},"sender_email":{"title":"Sender Email","description":"Verified custom From address; only honored on the enterprise tier. Read-only here - managed exclusively through a dedicated sender-verification flow"}},"type":"object","title":"BaseEmailNotificationsSettings","description":"Base Email Notifications Settings Schema.\n\nPer-shop config read by the templated-email send endpoint\n(POST /v1/shops/{slug}/emails): the ``enabled`` gate plus the outgoing\nsender identity."},"BaseMappingsSettings-Input":{"properties":{"version":{"type":"integer","const":1,"title":"Version","description":"Version of the mappings schema","default":1},"data":{"$ref":"#/components/schemas/MappingsV1","description":"Mappings data"}},"type":"object","title":"BaseMappingsSettings","description":"Base Mappings Settings Schema."},"BaseMappingsSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the mappings schema"},"data":{"description":"Mappings data"}},"type":"object","title":"BaseMappingsSettings","description":"Base Mappings Settings Schema."},"BaseProductSchema":{"properties":{"product_id":{"type":"string","nullable":true,"title":"Product Id","description":"Product ID","examples":["1234567890","1234567891",null]},"variant_id":{"type":"string","nullable":true,"title":"Variant Id","description":"Variant ID","examples":["1234567890","1234567891",null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Product title","examples":["Organic Coffee Beans","Wireless Mouse","T-Shirt",null]},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title","examples":["1kg / Dark Roast","Black / USB-C","Size L / Blue",null]},"quantity":{"type":"integer","nullable":true,"title":"Quantity","description":"Quantity of products","examples":[1,2,10,null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Price of the product","examples":[29.99,15.5,99.0,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10.0,79.0,null]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"Currency of the product (ISO 4217)","examples":["EUR","USD","GBP",null]},"size":{"type":"string","nullable":true,"title":"Size","description":"Size of the product","examples":["L","XL","40x30x20cm",null]},"images":{"items":{"$ref":"#/components/schemas/ProductImageSchema"},"type":"array","title":"Images","description":"List of product images","default":[],"examples":[[{"alt":"Organic coffee beans package front view","src":"https://cdn.shop.com/products/coffee-beans-main.jpg"},{"alt":"Organic coffee beans package side view","src":"https://cdn.shop.com/products/coffee-beans-side.jpg"}],[]]},"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product","examples":["PROD-001","ABC-123-XL","SKU-789456",null]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Weight of the product in grams","examples":[500.0,1000.0,250.5,null]},"tax_lines":{"items":{"$ref":"#/components/schemas/TaxLineSchema"},"type":"array","title":"Tax Lines","description":"List of tax lines","default":[],"examples":[[{"currency":"EUR","price":5.7,"rate":0.19,"title":"VAT 19%"},{"currency":"EUR","price":2.1,"rate":0.07,"title":"Reduced VAT 7%"}],[]]},"estimated_ship_date_start":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date Start","description":"Estimated ship date start from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"estimated_ship_date_end":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date End","description":"Estimated ship date end from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"requires_shipping":{"type":"boolean","title":"Requires Shipping","description":"Whether this product requires physical shipping. False for digital products, gift cards, services, etc.","default":true,"examples":[true,false]}},"type":"object","title":"BaseProductSchema","description":"Schema representing a product to be used also when it is bundled."},"BaseReturnsSettings-Input":{"properties":{"version":{"type":"integer","const":1,"title":"Version","description":"Version of the returns schema","default":1},"data":{"$ref":"#/components/schemas/ReturnsSettingsV1","description":"Returns settings data"}},"type":"object","title":"BaseReturnsSettings","description":"Base Returns Settings Schema."},"BaseReturnsSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the returns schema"},"data":{"description":"Returns settings data"}},"type":"object","title":"BaseReturnsSettings","description":"Base Returns Settings Schema."},"BaseTrackpagesSettings-Input":{"properties":{"version":{"type":"integer","enum":[1,2],"title":"Version","description":"Version of the schema","default":1},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Trackpages Settings Data","default":{}}},"type":"object","title":"BaseTrackpagesSettings","description":"Base Trackpages Settings Schema."},"BaseTrackpagesSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the schema"},"data":{"title":"Data","description":"Trackpages Settings Data"}},"type":"object","title":"BaseTrackpagesSettings","description":"Base Trackpages Settings Schema."},"BaseTriggerSettings-Input":{"properties":{"version":{"type":"integer","const":1,"title":"Version","description":"Version of the schema","default":1},"data":{"$ref":"#/components/schemas/TriggerSettingsV1-Input","description":"Trigger Settings Data"}},"type":"object","required":["data"],"title":"BaseTriggerSettings","description":"Base Trigger Settings Schema."},"BaseTriggerSettings-Output":{"properties":{"version":{"title":"Version","description":"Version of the schema"},"data":{"description":"Trigger Settings Data"}},"type":"object","required":["data"],"title":"BaseTriggerSettings","description":"Base Trigger Settings Schema."},"BasicAuthDTO":{"properties":{"username":{"type":"string","title":"Username","description":"The username for basic auth"},"password":{"type":"string","title":"Password","description":"The password for basic auth"}},"type":"object","required":["username","password"],"title":"BasicAuthDTO","description":"Basic authentication credentials with username and password."},"BasicPromotionPropertiesDTO-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"subtitle":{"type":"string","nullable":true,"title":"Subtitle","description":"Promotion Subtitle","examples":["The perfect addition to your order"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label","examples":["Check it out!"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink","examples":["https://shop.gokarla.io"]},"image_url":{"type":"string","title":"Image Url","description":"Product Image URL","default":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]},"discount_code":{"type":"string","nullable":true,"title":"Discount Code","description":"Discount code that may be applied to the call to action url if the shop provider supports it. DEPRECATED: use discount object instead.","deprecated":true,"examples":["DISCOUNT10"]},"translations":{"items":{"$ref":"#/components/schemas/BasicPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the promotion strings"}},"type":"object","title":"BasicPromotionPropertiesDTO","description":"The properties of the basic promotion that belongs to a campaign."},"BasicPromotionPropertiesDTO-Output":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"subtitle":{"type":"string","nullable":true,"title":"Subtitle","description":"Promotion Subtitle","examples":["The perfect addition to your order"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label","examples":["Check it out!"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink","examples":["https://shop.gokarla.io"]},"image_url":{"type":"string","title":"Image Url","description":"Product Image URL","default":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]},"discount_code":{"type":"string","nullable":true,"title":"Discount Code","description":"Discount code that may be applied to the call to action url if the shop provider supports it. DEPRECATED: use discount object instead.","deprecated":true,"examples":["DISCOUNT10"]},"translations":{"items":{"$ref":"#/components/schemas/BasicPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the promotion strings"}},"type":"object","title":"BasicPromotionPropertiesDTO","description":"The properties of the basic promotion that belongs to a campaign."},"BasicPromotionPropertiesI18n":{"properties":{"language":{"type":"string","title":"Language","description":"Language of the translation","examples":["en"]},"values":{"$ref":"#/components/schemas/BasicPromotionPropertiesText","description":"Promotion values to translate"}},"type":"object","required":["language","values"],"title":"BasicPromotionPropertiesI18n","description":"The properties of the basic promotion that are localized."},"BasicPromotionPropertiesText":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"subtitle":{"type":"string","nullable":true,"title":"Subtitle","description":"Promotion Subtitle","examples":["The perfect addition to your order"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label","examples":["Check it out!"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink","examples":["https://shop.gokarla.io"]},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Product Image URL","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]}},"type":"object","title":"BasicPromotionPropertiesText","description":"Text of the basic promotion that belongs to a campaign and can be translated."},"BasicPromotionWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"button_variant":{"type":"string","enum":["primary","secondary","outline"],"nullable":true,"title":"Button Variant","description":"Button style variant"},"hide_logo":{"type":"boolean","nullable":true,"title":"Hide Logo","description":"Whether to hide the logo"},"hide_title":{"type":"boolean","nullable":true,"title":"Hide Title","description":"Whether to hide the title"},"hide_subtitle":{"type":"boolean","nullable":true,"title":"Hide Subtitle","description":"Whether to hide the subtitle"},"promotion_type":{"type":"string","enum":["default","new"],"nullable":true,"title":"Promotion Type","description":"Type of promotion display"}},"type":"object","title":"BasicPromotionWidgetDTO","description":"Configuration for the basic-promotion widget."},"BrandPaletteColors-Input":{"properties":{"primary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Primary Dark","description":"Primary dark color","examples":["#1A1A1A"]},"primary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Primary Light","description":"Primary light color","examples":["#FEF9F6"]},"secondary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Secondary Dark","description":"Secondary dark color","examples":["#000000"]},"secondary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Secondary Light","description":"Secondary light color","examples":["#FFFFFF"]},"background":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Background","description":"Background color","examples":["#F0F3F4"]},"surface":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Surface","description":"Surface color","examples":["#FFFFFF"]}},"type":"object","required":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"title":"BrandPaletteColors","description":"Brand palette colors."},"BrandPaletteColors-Output":{"properties":{"primary_dark":{"title":"Primary Dark","description":"Primary dark color","examples":["#1A1A1A"]},"primary_light":{"title":"Primary Light","description":"Primary light color","examples":["#FEF9F6"]},"secondary_dark":{"title":"Secondary Dark","description":"Secondary dark color","examples":["#000000"]},"secondary_light":{"title":"Secondary Light","description":"Secondary light color","examples":["#FFFFFF"]},"background":{"title":"Background","description":"Background color","examples":["#F0F3F4"]},"surface":{"title":"Surface","description":"Surface color","examples":["#FFFFFF"]}},"type":"object","required":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"title":"BrandPaletteColors","description":"Brand palette colors."},"BrandPaletteColorsDTO":{"properties":{"primary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Primary Dark","description":"Primary dark color","examples":["#1A1A1A"]},"primary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Primary Light","description":"Primary light color","examples":["#FEF9F6"]},"secondary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Secondary Dark","description":"Secondary dark color","examples":["#000000"]},"secondary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Secondary Light","description":"Secondary light color","examples":["#FFFFFF"]},"background":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Background","description":"Background color","examples":["#F0F3F4"]},"surface":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","title":"Surface","description":"Surface color","examples":["#FFFFFF"]}},"type":"object","required":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"title":"BrandPaletteColorsDTO","description":"Brand palette colors schema."},"BrandPaletteColorsUpdateDTO":{"properties":{"primary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Primary dark color","nullable":true,"title":"Primary Dark","examples":["#1A1A1A"]},"primary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Primary light color","nullable":true,"title":"Primary Light","examples":["#FEF9F6"]},"secondary_dark":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Secondary dark color","nullable":true,"title":"Secondary Dark","examples":["#000000"]},"secondary_light":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Secondary light color","nullable":true,"title":"Secondary Light","examples":["#FFFFFF"]},"background":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Background color","nullable":true,"title":"Background","examples":["#F0F3F4"]},"surface":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$","description":"Surface color","nullable":true,"title":"Surface","examples":["#FFFFFF"]}},"type":"object","title":"BrandPaletteColorsUpdateDTO","description":"Brand palette colors update schema with optional fields."},"BrazeSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"rest_endpoint":{"type":"string","title":"Rest Endpoint","description":"Braze REST endpoint URL (e.g., 'https://rest.iad-03.braze.com')","default":"https://rest.iad-03.braze.com"}},"type":"object","title":"BrazeSettingsV1","description":"Schema for a Shop.BrazeSetting object."},"BrazeTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"rest_endpoint":{"type":"string","title":"Rest Endpoint","description":"Braze REST endpoint URL","default":"https://rest.iad-03.braze.com"}},"type":"object","required":["status"],"title":"BrazeTriggerSettingsDTO","description":"Braze-specific trigger settings for public API."},"BrazeTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"rest_endpoint":{"type":"string","title":"Rest Endpoint","description":"Braze REST endpoint URL","default":"https://rest.iad-03.braze.com"}},"type":"object","required":["status"],"title":"BrazeTriggerSettingsDTO","description":"Braze-specific trigger settings for public API."},"BrazeTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"},"rest_endpoint":{"type":"string","nullable":true,"title":"Rest Endpoint","description":"Braze REST endpoint URL"}},"type":"object","title":"BrazeTriggerSettingsUpdateDTO","description":"Braze-specific trigger settings update for public API."},"BrevoSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"use_proxy":{"type":"boolean","title":"Use Proxy","description":"Whether to use HTTP proxy for Brevo API calls","default":false}},"type":"object","title":"BrevoSettingsV1","description":"Schema for a Shop.BrevoSetting object."},"BrevoTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]}},"type":"object","required":["status"],"title":"BrevoTriggerSettingsDTO","description":"Brevo-specific trigger settings for public API."},"BrevoTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]}},"type":"object","required":["status"],"title":"BrevoTriggerSettingsDTO","description":"Brevo-specific trigger settings for public API."},"BrevoTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"}},"type":"object","title":"BrevoTriggerSettingsUpdateDTO","description":"Brevo-specific trigger settings update for public API."},"BulkCarrierSettingsResponseDTO":{"properties":{"total_shops":{"type":"integer","title":"Total Shops","description":"Total number of shops processed"},"successful_updates":{"type":"integer","title":"Successful Updates","description":"Number of successful updates"},"failed_updates":{"type":"integer","title":"Failed Updates","description":"Number of failed updates"},"results":{"items":{"$ref":"#/components/schemas/ShopUpdateResult"},"type":"array","title":"Results","description":"Detailed results for each shop"}},"type":"object","required":["total_shops","successful_updates","failed_updates","results"],"title":"BulkCarrierSettingsResponseDTO","description":"Response for bulk carrier settings update."},"BulkCarrierSettingsUpdateDTO":{"properties":{"shop_slugs":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Shop Slugs","description":"List of shop slugs to update. Use ['*'] for all shops","examples":[["xbyx","vetsak"],["*"]]},"aggregator":{"type":"string","title":"Aggregator","description":"The aggregator to configure.","examples":["HC"]},"action":{"$ref":"#/components/schemas/CarrierAction","description":"Action to perform (ENABLE, DISABLE)","examples":["DISABLE"]},"carriers":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Carriers","description":"List of carrier references. Use ['*'] for all carriers","examples":[["dhl","dpd","ups"],["*"]]}},"type":"object","required":["shop_slugs","aggregator","action","carriers"],"title":"BulkCarrierSettingsUpdateDTO","description":"DTO for bulk updating carrier settings across multiple shops."},"CampaignProductDTO-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product Title","examples":["Delivery Socks"]},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Product Image URL","default":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product hyperlink","examples":["https://shop.gokarla.io/products/delivery-s-cks"]},"shop_product_id":{"type":"string","format":"uuid","nullable":true,"title":"Shop Product Id","description":"Product ID if available","examples":["550e8400-e29b-41d4-a716-446655440000",null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Product Price","examples":[2.99]},"currency":{"type":"string","title":"Currency","description":"The currency of the price","examples":["EUR"]},"cart_url":{"type":"string","nullable":true,"title":"Cart Url","description":"Shopify add-to-cart URL","examples":["https://shop.gokarla.io/cart/12345:1"]},"category":{"$ref":"#/components/schemas/ProductRecommendationCategory","nullable":true,"description":"Promotion category for the product","examples":["sale"]},"discount":{"$ref":"#/components/schemas/ProductSaleDiscountDTO","nullable":true,"description":"Product Discount"},"translations":{"items":{"$ref":"#/components/schemas/ProductRecommendationI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the product recommendation strings"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product","examples":["PROD-001","SOCKS-BLK-L","COFFEE-1KG",null]},"status":{"type":"string","nullable":true,"title":"Status","description":"Product status from the shop provider","examples":["active","draft","archived",null]}},"type":"object","required":["currency"],"title":"CampaignProductDTO","description":"The properties of the product recommendation that belongs to a promotion."},"CampaignProductDTO-Output":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product Title","examples":["Delivery Socks"]},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Product Image URL","default":"https://imagedelivery.net/dXeULRC3hlKS2IJjZmVx9Q/c5a76e52-e2d0-4c27-fc04-fcde1b725200/public","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product hyperlink","examples":["https://shop.gokarla.io/products/delivery-s-cks"]},"shop_product_id":{"type":"string","format":"uuid","nullable":true,"title":"Shop Product Id","description":"Product ID if available","examples":["550e8400-e29b-41d4-a716-446655440000",null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Product Price","examples":[2.99]},"currency":{"type":"string","title":"Currency","description":"The currency of the price","examples":["EUR"]},"cart_url":{"type":"string","nullable":true,"title":"Cart Url","description":"Shopify add-to-cart URL","examples":["https://shop.gokarla.io/cart/12345:1"]},"category":{"$ref":"#/components/schemas/ProductRecommendationCategory","nullable":true,"description":"Promotion category for the product","examples":["sale"]},"discount":{"$ref":"#/components/schemas/ProductSaleDiscountDTO","nullable":true,"description":"Product Discount"},"translations":{"items":{"$ref":"#/components/schemas/ProductRecommendationI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the product recommendation strings"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product","examples":["PROD-001","SOCKS-BLK-L","COFFEE-1KG",null]},"status":{"type":"string","nullable":true,"title":"Status","description":"Product status from the shop provider","examples":["active","draft","archived",null]}},"type":"object","required":["currency"],"title":"CampaignProductDTO","description":"The properties of the product recommendation that belongs to a promotion."},"CampaignProductDetailsDTO":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Product ID","examples":["550e8400-e29b-41d4-a716-446655440000"]},"category":{"$ref":"#/components/schemas/ProductRecommendationCategory","nullable":true,"description":"Promotion category for the product","examples":["sale"]},"discount":{"$ref":"#/components/schemas/ProductSaleDiscountDTO","nullable":true,"description":"Product Discount"}},"type":"object","required":["id"],"title":"CampaignProductDetailsDTO","description":"The properties of the product recommendation that belongs to a promotion."},"CampaignRequestDTO":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Campaign visibility toggle. Only one campaign can be enabled per segment at a time.","default":false},"name":{"type":"string","title":"Name","description":"Campaign name to be used internally","examples":["Q3 Campaign"]},"start_date":{"type":"string","format":"date-time","nullable":true,"title":"Start Date","description":"Time in which the campaign will start (defaults to now)","examples":["2024-10-01T00:00:00Z"]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time in which the campaign will end","examples":["2024-10-11T00:00:00Z"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the campaign is targeted","examples":["b2b"]},"promotion_type":{"$ref":"#/components/schemas/PromotionType","description":"Type of promotion"},"promotion_properties":{"anyOf":[{"$ref":"#/components/schemas/ProductPromotionPropertiesRequestDTO"},{"$ref":"#/components/schemas/BasicPromotionPropertiesDTO-Input"},{"$ref":"#/components/schemas/BannerPromotionPropertiesDTO-Input"}],"title":"Promotion Properties"},"discount_id":{"type":"string","format":"uuid","nullable":true,"title":"Discount Id","description":"Discount UUID","examples":["550e8400-e29b-41d4-a716-446655440000",null]}},"type":"object","required":["name","segment","promotion_type","promotion_properties"],"title":"CampaignRequestDTO","description":"The Campaign object to be created."},"CampaignResponseDTO-Input":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Campaign visibility toggle. Only one campaign can be enabled per segment at a time.","default":false},"name":{"type":"string","title":"Name","description":"Campaign name to be used internally","examples":["Q3 Campaign"]},"start_date":{"type":"string","format":"date-time","title":"Start Date","description":"Time in which the campaign will start (defaults to now)","examples":["2024-10-01T00:00:00Z"]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time in which the campaign will end","examples":["2024-10-11T00:00:00Z"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the campaign is targeted","examples":["b2b"]},"promotion_type":{"$ref":"#/components/schemas/PromotionType","description":"Type of promotion"},"promotion_properties":{"anyOf":[{"$ref":"#/components/schemas/BasicPromotionPropertiesDTO-Input"},{"$ref":"#/components/schemas/ProductPromotionPropertiesResponseDTO-Input"},{"$ref":"#/components/schemas/BannerPromotionPropertiesDTO-Input"}],"title":"Promotion Properties"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Campaign UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop Slug","examples":["gokarla"]},"status":{"$ref":"#/components/schemas/CampaignStatus","description":"The status of the campaign","examples":["active"]},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"The discount attached to the campaign","examples":[{"code":"MYCODE10","type":"order","uuid":"def3b49c-9268-4aaa-959c-ea2bb8c66f55","value":10.0,"value_type":"percentage"}]}},"type":"object","required":["name","start_date","segment","promotion_type","promotion_properties","uuid","shop_slug","status"],"title":"CampaignResponseDTO","description":"The Campaign object to be exchanged with the HTTP clients."},"CampaignResponseDTO-Output":{"properties":{"enabled":{"type":"boolean","title":"Enabled","description":"Campaign visibility toggle. Only one campaign can be enabled per segment at a time.","default":false},"name":{"type":"string","title":"Name","description":"Campaign name to be used internally","examples":["Q3 Campaign"]},"start_date":{"type":"string","format":"date-time","title":"Start Date","description":"Time in which the campaign will start (defaults to now)","examples":["2024-10-01T00:00:00Z"]},"end_date":{"type":"string","format":"date-time","nullable":true,"title":"End Date","description":"Time in which the campaign will end","examples":["2024-10-11T00:00:00Z"]},"segment":{"type":"string","title":"Segment","description":"Segment to which the campaign is targeted","examples":["b2b"]},"promotion_type":{"$ref":"#/components/schemas/PromotionType","description":"Type of promotion"},"promotion_properties":{"anyOf":[{"$ref":"#/components/schemas/BasicPromotionPropertiesDTO-Output"},{"$ref":"#/components/schemas/ProductPromotionPropertiesResponseDTO-Output"},{"$ref":"#/components/schemas/BannerPromotionPropertiesDTO-Output"}],"title":"Promotion Properties"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Campaign UUID","examples":["d1e99924-df48-4781-b3ad-ff147d3e70a2"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop Slug","examples":["gokarla"]},"status":{"$ref":"#/components/schemas/CampaignStatus","description":"The status of the campaign","examples":["active"]},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"The discount attached to the campaign","examples":[{"code":"MYCODE10","type":"order","uuid":"def3b49c-9268-4aaa-959c-ea2bb8c66f55","value":10.0,"value_type":"percentage"}]}},"type":"object","required":["name","start_date","segment","promotion_type","promotion_properties","uuid","shop_slug","status"],"title":"CampaignResponseDTO","description":"The Campaign object to be exchanged with the HTTP clients."},"CampaignSettingsDTO":{"properties":{"product_recommendations_enabled":{"type":"boolean","title":"Product Recommendations Enabled","description":"Dynamic campaigns status","examples":[true]},"use_native_recommendations":{"type":"boolean","title":"Use Native Recommendations","description":"Use native recommendation engine instead of Shopify API","examples":[false]},"notification_trackpage_discount_enabled":{"type":"boolean","title":"Notification Trackpage Discount Enabled","description":"Campaign attribution + discount wrapping of notification trackpage links","examples":[false]}},"type":"object","required":["product_recommendations_enabled","use_native_recommendations","notification_trackpage_discount_enabled"],"title":"CampaignSettingsDTO","description":"The campaign settings object to be exchanged with the HTTP clients."},"CampaignSettingsUpdateDTO":{"properties":{"product_recommendations_enabled":{"type":"boolean","nullable":true,"title":"Product Recommendations Enabled","description":"Toggle dynamic campaigns","examples":[true]},"use_native_recommendations":{"type":"boolean","nullable":true,"title":"Use Native Recommendations","description":"Use native recommendation engine instead of Shopify API","examples":[false]},"notification_trackpage_discount_enabled":{"type":"boolean","nullable":true,"title":"Notification Trackpage Discount Enabled","description":"Toggle campaign attribution + discount wrapping of notification trackpage links","examples":[true]}},"type":"object","title":"CampaignSettingsUpdateDTO","description":"The campaign settings update object to be exchanged with the HTTP clients."},"CampaignSettingsV1-Input":{"properties":{"product_recommendations_enabled":{"type":"boolean","title":"Product Recommendations Enabled","description":"Flag to enable/disable dynamic campaigns","default":false},"use_native_recommendations":{"type":"boolean","title":"Use Native Recommendations","description":"Use native recommendation engine instead of Shopify API for dynamic product campaigns","default":false},"notification_trackpage_discount_enabled":{"type":"boolean","title":"Notification Trackpage Discount Enabled","description":"Enrich notification trackpage links with campaign attribution and the campaign discount redirect (Shopify shops only)","default":false}},"type":"object","title":"CampaignSettingsV1","description":"Campaign Settings Schema."},"CampaignSettingsV1-Output":{"properties":{"product_recommendations_enabled":{"title":"Product Recommendations Enabled","description":"Flag to enable/disable dynamic campaigns"},"use_native_recommendations":{"title":"Use Native Recommendations","description":"Use native recommendation engine instead of Shopify API for dynamic product campaigns"},"notification_trackpage_discount_enabled":{"title":"Notification Trackpage Discount Enabled","description":"Enrich notification trackpage links with campaign attribution and the campaign discount redirect (Shopify shops only)"}},"type":"object","title":"CampaignSettingsV1","description":"Campaign Settings Schema."},"CampaignStatus":{"type":"string","enum":["active","inactive","scheduled","paused"],"title":"CampaignStatus","description":"State of the Campaign based on the start and end date."},"CarrierAction":{"type":"string","enum":["ENABLE","DISABLE"],"title":"CarrierAction","description":"Carrier configuration actions."},"CarrierDTO":{"properties":{"tracking_number":{"type":"string","title":"Tracking Number","description":"Carrier Tracking Number"},"carrier_reference":{"type":"string","title":"Carrier Reference","description":"Carrier reference"},"tracking_url":{"type":"string","nullable":true,"title":"Tracking Url","description":"Shipment tracking URL."}},"type":"object","required":["tracking_number","carrier_reference"],"title":"CarrierDTO","description":"Carrier DTO to be used in the Tracking object."},"CarrierEnum":{"type":"string","enum":["dhl","dhl-germany","dhl_ecommerce_nl","dhlexp","dhl2man","deutsche_post_mail","amazon","brt","dpd","dpdn","dpd-at","dpd-ch","dpduk","dpd-de","gls","gls_es","gls_it","gls_express","goexp","hrs","postat","rhe","royalmail","swisspost","ups","bpost","dao","anpost","bring","posti","postnl","postnl_inter","usps","fedex","fedex_uk","fedex_freight","postnord","parcelone","dachser","asendia_de","colissimo","la_poste","inpost_uk","inpost_pl","inpost_it","mondial_relay","evri","poste_italiane","kuehne-nagel","dsv","ait_usa","ait_uk","colis_prive","chronopost","dynalogic","correos_es","ctt_express_es","landmark_global","ppl_cz","karl_juergersen","hellmann","cargoboard","camel24","aramex","aramex_australia","paack","delhivery","auspost","couriers_please","tnt","yunexpress","uniuni","skynetworldwide","gel","shreetirupati"],"title":"CarrierEnum","description":"All Carriers Supported."},"CarrierSettingsDTO":{"properties":{"shipment_updates":{"type":"boolean","title":"Shipment Updates","description":"Shipment updates from carriers retrieval status","examples":[true]}},"type":"object","required":["shipment_updates"],"title":"CarrierSettingsDTO","description":"The trigger settings object to be exchanged with the HTTP clients."},"CarrierSettingsUpdateDTO":{"properties":{"shipment_updates":{"type":"boolean","nullable":true,"title":"Shipment Updates","description":"Toggle retrieving shipment updates from carriers","examples":[true]}},"type":"object","title":"CarrierSettingsUpdateDTO","description":"The trigger settings update object to be exchanged with the HTTP clients."},"CarrierSettingsV1-Input":{"properties":{"skip_submission_for_segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Skip Submission For Segments","description":"Order segments that exclude an order from aggregator submission entirely. Matched against the last dotted component of each order segment, so a Shopify tag 'fr_migrated' (stored as 'Shopify.tag.fr_migrated') is configured as 'fr_migrated'. Takes precedence over all per-aggregator settings, including override_*_for_segments. Operator force-submit bypasses it."},"pp_status":{"$ref":"#/components/schemas/SettingStatus","description":"Current status of the pp integration","default":"disabled"},"pp_enabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Pp Enabled Carriers","description":"List of carrier references to enable for pp"},"pp_disabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Pp Disabled Carriers","description":"List of carrier references to disable for pp"},"override_pp_tracking_config_for_segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Override Pp Tracking Config For Segments","description":"List of segments to submit to pp regardless of tracking config"},"aftership_status":{"$ref":"#/components/schemas/SettingStatus","description":"Current status of the aftership integration","default":"disabled"},"aftership_enabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Aftership Enabled Carriers","description":"List of carrier references to enable for aftership."},"aftership_disabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Aftership Disabled Carriers","description":"List of carrier references to disable for aftership."},"aftership_disabled_carriers_country_exceptions":{"patternProperties":{"^[A-Z]{2}$":{"items":{"type":"string"},"type":"array"}},"type":"object","nullable":true,"title":"Aftership Disabled Carriers Country Exceptions","description":"Per-destination-country exceptions to aftership_disabled_carriers, e.g. {\"BE\": [\"dhl-germany\"]}: a disabled carrier is still submitted when the order's destination country lists it here. Keys are upper-case ISO alpha-2; carriers match like the disabled list."},"override_aftership_tracking_config_for_segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Override Aftership Tracking Config For Segments","description":"List of segments to submit to aftership regardless of tracking config"},"hc_status":{"$ref":"#/components/schemas/SettingStatus","description":"Current status of the hc integration","default":"disabled"},"hc_enabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Hc Enabled Carriers","description":"List of carrier references to enable for hc"},"hc_disabled_carriers":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Hc Disabled Carriers","description":"List of carrier references to disable for hc"},"override_hc_tracking_config_for_segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Override Hc Tracking Config For Segments","description":"List of segments to submit to hc regardless of tracking config"}},"type":"object","title":"CarrierSettingsV1","description":"Schema for a Shop.CarrierSettings object."},"CarrierSettingsV1-Output":{"properties":{"skip_submission_for_segments":{"title":"Skip Submission For Segments","description":"Order segments that exclude an order from aggregator submission entirely. Matched against the last dotted component of each order segment, so a Shopify tag 'fr_migrated' (stored as 'Shopify.tag.fr_migrated') is configured as 'fr_migrated'. Takes precedence over all per-aggregator settings, including override_*_for_segments. Operator force-submit bypasses it."},"pp_status":{"description":"Current status of the pp integration"},"pp_enabled_carriers":{"title":"Pp Enabled Carriers","description":"List of carrier references to enable for pp"},"pp_disabled_carriers":{"title":"Pp Disabled Carriers","description":"List of carrier references to disable for pp"},"override_pp_tracking_config_for_segments":{"title":"Override Pp Tracking Config For Segments","description":"List of segments to submit to pp regardless of tracking config"},"aftership_status":{"description":"Current status of the aftership integration"},"aftership_enabled_carriers":{"title":"Aftership Enabled Carriers","description":"List of carrier references to enable for aftership."},"aftership_disabled_carriers":{"title":"Aftership Disabled Carriers","description":"List of carrier references to disable for aftership."},"aftership_disabled_carriers_country_exceptions":{"title":"Aftership Disabled Carriers Country Exceptions","description":"Per-destination-country exceptions to aftership_disabled_carriers, e.g. {\"BE\": [\"dhl-germany\"]}: a disabled carrier is still submitted when the order's destination country lists it here. Keys are upper-case ISO alpha-2; carriers match like the disabled list."},"override_aftership_tracking_config_for_segments":{"title":"Override Aftership Tracking Config For Segments","description":"List of segments to submit to aftership regardless of tracking config"},"hc_status":{"description":"Current status of the hc integration"},"hc_enabled_carriers":{"title":"Hc Enabled Carriers","description":"List of carrier references to enable for hc"},"hc_disabled_carriers":{"title":"Hc Disabled Carriers","description":"List of carrier references to disable for hc"},"override_hc_tracking_config_for_segments":{"title":"Override Hc Tracking Config For Segments","description":"List of segments to submit to hc regardless of tracking config"}},"type":"object","title":"CarrierSettingsV1","description":"Schema for a Shop.CarrierSettings object."},"ClaimCreationDTO":{"properties":{"resolution_preference":{"$ref":"#/components/schemas/ClaimResolutionPreference","nullable":true,"description":"Claim resolution preference","examples":["refund"]},"reason":{"$ref":"#/components/schemas/ClaimReason","description":"Reason to submit the claim","examples":["damage"]},"status":{"$ref":"#/components/schemas/ClaimStatus","nullable":true,"description":"Claim status","examples":["pending"]},"description":{"type":"string","nullable":true,"title":"Description","description":"Complimentary description to explain why the claim was submitted","examples":["Package was damaged on the right side"]},"customer_signature_image_url":{"type":"string","nullable":true,"title":"Customer Signature Image Url","description":"The private image url with the client signature","examples":["https://cdn.gokarla.io/12d6cceb-efa5-4bbc-a557-a6d31ed9f68b/df4f85de-1580-4c33-9178-cee6729e010a.png"]},"selected_items":{"items":{"$ref":"#/components/schemas/SelectedItemSchema"},"type":"array","title":"Selected Items","description":"List of selected product items","default":[],"examples":[[{"image_urls":["https://cdn.shop.com/products/damaged-mouse-1.jpg","https://cdn.shop.com/products/damaged-mouse-2.jpg"],"net_price":29.99,"quantity":1,"sku":"PROD-001","title":"Wireless Mouse"},{"image_urls":[],"net_price":15.5,"quantity":2,"sku":"COFFEE-1KG","title":"Coffee Beans 1kg"}],[]]},"image_urls":{"items":{"type":"string"},"type":"array","title":"Image Urls","description":"List of image URLs that give evidence of the damaged product or claim in general","default":[]},"optional_image_urls":{"items":{"type":"string"},"type":"array","title":"Optional Image Urls","description":"List of image urls classified as optional (not required for the claim but that may help to resolve it)","default":[]},"dropoff_permission":{"type":"boolean","nullable":true,"title":"Dropoff Permission","description":"The customer's response about whether they authorized the carrier to leave the package at a designated spot without requiring direct delivery"},"step_user_input":{"items":{"$ref":"#/components/schemas/StepUserInput"},"type":"array","nullable":true,"title":"Step User Input","description":"User input for each step in the claim process"},"shipment_id":{"type":"string","format":"uuid","nullable":true,"title":"Shipment Id","description":"Unique identifier for the system in Karla. If not provided, a tracking number has to be given.","examples":["7589e324-8cd7-4868-800b-cd0facaf633c"]},"damaged_product_items":{"items":{"$ref":"#/components/schemas/DamagedProductItemSchema"},"type":"array","title":"Damaged Product Items","description":"List of damaged product items (DEPRECATED)","default":[],"examples":[[{"image_urls":["https://cdn.shop.com/claims/damaged-laptop-screen.jpg"],"net_price":999.99,"quantity":1,"sku":"LAPTOP-001","title":"Laptop Computer"}],[]]}},"type":"object","required":["reason"],"title":"ClaimCreationDTO","description":"The Claim request data to be send in the body for creation."},"ClaimReason":{"type":"string","enum":["partial_damage","damage","investigation","support","return","dissatisfied_with_product","wrong_product","missing_product"],"title":"ClaimReason","description":"Type reason for a claim."},"ClaimResolutionPreference":{"type":"string","enum":["reorder","refund","keep_with_reward"],"title":"ClaimResolutionPreference","description":"Type resolution preference for a claim."},"ClaimResolutionSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether automated refund/reorder is enabled for the shop","default":"disabled"},"notify_mode":{"$ref":"#/components/schemas/ResolutionNotifyMode","description":"Whether an automated resolution still creates a ticket","default":"notify"},"rules":{"items":{"$ref":"#/components/schemas/ResolutionRuleV1-Input"},"type":"array","title":"Rules","description":"Ordered rules; first whose conditions all match decides"}},"type":"object","title":"ClaimResolutionSettingsV1","description":"Per-shop automated refund/reorder rule engine settings.\n\nStackable, first-match-wins rules evaluated from the claim event alone.\nNo matching rule -> fall through to a manual ticket (automation is strictly\nopt-in per matching rule). A matched rule's action picks refund vs reorder\ndirectly (REFUND/REORDER) or defers to the customer's\nresolution_preference (AUTOMATE)."},"ClaimResolutionTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Whether automated refund/reorder is enabled","examples":[true]},"notify_mode":{"$ref":"#/components/schemas/ResolutionNotifyMode","description":"Whether an automated resolution still creates a ticket"},"rules":{"items":{"$ref":"#/components/schemas/ResolutionRuleV1-Input"},"type":"array","title":"Rules","description":"Ordered rules; first whose conditions all match decides"}},"type":"object","required":["status","notify_mode","rules"],"title":"ClaimResolutionTriggerSettingsDTO","description":"Claim resolution automation trigger settings for public API."},"ClaimResolutionTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Whether automated refund/reorder is enabled","examples":[true]},"notify_mode":{"$ref":"#/components/schemas/ResolutionNotifyMode","description":"Whether an automated resolution still creates a ticket"},"rules":{"items":{"$ref":"#/components/schemas/ResolutionRuleV1-Output"},"type":"array","title":"Rules","description":"Ordered rules; first whose conditions all match decides"}},"type":"object","required":["status","notify_mode","rules"],"title":"ClaimResolutionTriggerSettingsDTO","description":"Claim resolution automation trigger settings for public API."},"ClaimResolutionTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Whether automated refund/reorder is enabled; absent → unchanged"},"notify_mode":{"$ref":"#/components/schemas/ResolutionNotifyMode","nullable":true,"description":"Whether an automated resolution creates a ticket; absent → unchanged"},"rules":{"items":{"$ref":"#/components/schemas/ResolutionRuleV1-Input"},"type":"array","nullable":true,"title":"Rules","description":"Ordered rules (full replacement); absent → unchanged"}},"type":"object","title":"ClaimResolutionTriggerSettingsUpdateDTO","description":"Claim resolution automation trigger settings update for public API."},"ClaimResponseDTO-Input":{"properties":{"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"When the resource was created"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"When the resource was last updated"},"deleted_at":{"nullable":true,"title":"Deleted At"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Claim UUID","examples":["38fdc365-7de9-4313-afbd-0ed23717c5e0"]},"order_id":{"type":"string","format":"uuid","nullable":true,"title":"Order Id","description":"Order UUID"},"shipment_id":{"type":"string","format":"uuid","nullable":true,"title":"Shipment Id","description":"Shipment UUID"},"shop_id":{"type":"string","format":"uuid","title":"Shop Id","description":"Shop UUID","examples":["38fdc365-7de9-4313-afbd-0ed23717c5e0"]},"order_number":{"type":"string","nullable":true,"title":"Order Number","description":"Order number related to the shop","examples":["12345"]},"resolution_preference":{"$ref":"#/components/schemas/ClaimResolutionPreference","nullable":true,"description":"Claim resolution preference","examples":["refund"]},"reason":{"$ref":"#/components/schemas/ClaimReason","description":"Reason to submit the claim","examples":["partial_damage"]},"status":{"$ref":"#/components/schemas/ClaimStatus","description":"Progress of the claim","default":"pending","examples":["pending"]},"resolution_outcome":{"$ref":"#/components/schemas/ResolutionOutcome","nullable":true,"description":"Outcome of automated refund/reorder; null if unresolved","examples":["refunded",null]},"resolved_at":{"type":"string","format":"date-time","nullable":true,"title":"Resolved At","description":"When the claim was auto-resolved; null until resolved"},"description":{"type":"string","nullable":true,"title":"Description","description":"Complimentary description to explain why the claim was submitted","examples":["Package was damaged on the right side"]},"customer_signature_image_url":{"type":"string","nullable":true,"title":"Customer Signature Image Url","description":"The private image url with the client signature","examples":["https://cdn.gokarla.io/12d6cceb-efa5-4bbc-a557-a6d31ed9f68b/df4f85de-1580-4c33-9178-cee6729e010a.png"]},"damaged_product_items":{"items":{"$ref":"#/components/schemas/DamagedProductItemSchema"},"type":"array","title":"Damaged Product Items","description":"List of damaged product items (DEPRECATED)","default":[]},"selected_items":{"items":{"$ref":"#/components/schemas/SelectedItemSchema"},"type":"array","title":"Selected Items","description":"List of selected product items","default":[]},"image_urls":{"items":{"type":"string"},"type":"array","title":"Image Urls","description":"List of image urls","default":[]},"optional_image_urls":{"items":{"type":"string"},"type":"array","title":"Optional Image Urls","description":"List of image urls classified as optional (not required for the claim but that may help to resolve it)","default":[]},"address":{"$ref":"#/components/schemas/AddressSchema","nullable":true,"description":"Delivery address for the original order"},"net_invoice_amount":{"type":"number","nullable":true,"title":"Net Invoice Amount","description":"Price of the entire order without discounts, shipping costs and taxes applied"},"tracking_number":{"type":"string","nullable":true,"title":"Tracking Number","description":"Carrier Tracking Number"},"carrier_reference":{"$ref":"#/components/schemas/CarrierEnum","nullable":true,"description":"Carrier reference"},"scan_date":{"type":"string","format":"date-time","nullable":true,"title":"Scan Date","description":"Date the package was picked by the carrier","examples":["2024-03-14T07:14:23+00:00"]},"weight_kg":{"type":"number","nullable":true,"title":"Weight Kg","description":"The weight of the package in kilograms"},"dropoff_permission":{"type":"boolean","nullable":true,"title":"Dropoff Permission","description":"The customer's response about whether they authorized the carrier to leave the package at a designated spot without requiring direct delivery"},"step_user_input":{"items":{"$ref":"#/components/schemas/StepUserInput"},"type":"array","nullable":true,"title":"Step User Input","description":"User input for each step in the claim process","examples":[[{"step_id":"question","user_input":{"input_type":"selected_answer","input_value":"yes"}}]]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop identifier as a url slug","examples":["gokarla"]}},"type":"object","required":["uuid","shop_id","reason","shop_slug"],"title":"ClaimResponseDTO","description":"The Claim response data."},"ClaimResponseDTO-Output":{"properties":{"created_at":{"title":"Created At","description":"When the resource was created"},"updated_at":{"title":"Updated At","description":"When the resource was last updated"},"uuid":{"title":"Uuid","description":"Claim UUID","examples":["38fdc365-7de9-4313-afbd-0ed23717c5e0"]},"order_id":{"title":"Order Id","description":"Order UUID"},"shipment_id":{"title":"Shipment Id","description":"Shipment UUID"},"shop_id":{"title":"Shop Id","description":"Shop UUID","examples":["38fdc365-7de9-4313-afbd-0ed23717c5e0"]},"order_number":{"title":"Order Number","description":"Order number related to the shop","examples":["12345"]},"resolution_preference":{"description":"Claim resolution preference","examples":["refund"]},"reason":{"description":"Reason to submit the claim","examples":["partial_damage"]},"status":{"description":"Progress of the claim","examples":["pending"]},"resolution_outcome":{"description":"Outcome of automated refund/reorder; null if unresolved","examples":["refunded",null]},"resolved_at":{"title":"Resolved At","description":"When the claim was auto-resolved; null until resolved"},"description":{"title":"Description","description":"Complimentary description to explain why the claim was submitted","examples":["Package was damaged on the right side"]},"customer_signature_image_url":{"title":"Customer Signature Image Url","description":"The private image url with the client signature","examples":["https://cdn.gokarla.io/12d6cceb-efa5-4bbc-a557-a6d31ed9f68b/df4f85de-1580-4c33-9178-cee6729e010a.png"]},"damaged_product_items":{"title":"Damaged Product Items","description":"List of damaged product items (DEPRECATED)"},"selected_items":{"title":"Selected Items","description":"List of selected product items"},"image_urls":{"title":"Image Urls","description":"List of image urls"},"optional_image_urls":{"title":"Optional Image Urls","description":"List of image urls classified as optional (not required for the claim but that may help to resolve it)"},"address":{"description":"Delivery address for the original order"},"net_invoice_amount":{"title":"Net Invoice Amount","description":"Price of the entire order without discounts, shipping costs and taxes applied"},"tracking_number":{"title":"Tracking Number","description":"Carrier Tracking Number"},"carrier_reference":{"description":"Carrier reference"},"scan_date":{"title":"Scan Date","description":"Date the package was picked by the carrier","examples":["2024-03-14T07:14:23+00:00"]},"weight_kg":{"title":"Weight Kg","description":"The weight of the package in kilograms"},"dropoff_permission":{"title":"Dropoff Permission","description":"The customer's response about whether they authorized the carrier to leave the package at a designated spot without requiring direct delivery"},"step_user_input":{"title":"Step User Input","description":"User input for each step in the claim process","examples":[[{"step_id":"question","user_input":{"input_type":"selected_answer","input_value":"yes"}}]]},"shop_slug":{"title":"Shop Slug","description":"Shop identifier as a url slug","examples":["gokarla"]}},"type":"object","required":["uuid","shop_id","reason","shop_slug"],"title":"ClaimResponseDTO","description":"The Claim response data."},"ClaimStatus":{"type":"string","enum":["pending","accepted","rejected","closed"],"title":"ClaimStatus","description":"Type status for a claim."},"ClaimTemplateV1-Input":{"properties":{"subject":{"type":"string","nullable":true,"title":"Subject","description":"Ticket subject template; absent → default, '' honored"},"body":{"type":"string","nullable":true,"title":"Body","description":"Ticket body template; absent → default, '' honored"},"tags":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Tags","description":"Ticket tags; absent → default ['karla'], [] honored"},"attachments":{"type":"boolean","nullable":true,"title":"Attachments","description":"Whether to attach claim images; absent → per-reason default"},"affidavit":{"type":"boolean","nullable":true,"title":"Affidavit","description":"Whether to attach the carrier affidavit PDF; absent → default off"},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Auto agent reply posted after ticket creation; absent → no reply, '' honored as no reply, non-empty → sent"},"selected_items_format":{"type":"string","nullable":true,"title":"Selected Items Format","description":"Per-item template for the {selected_items} variable, rendered with {title}/{sku}/{quantity}/{net_price}; absent → default, '' honored"},"step_inputs_format":{"type":"string","nullable":true,"title":"Step Inputs Format","description":"Per-input template for the {step_inputs} variable (the customer's Resolve answers), rendered with {question}/{answer}/{step_id}; absent → default, '' honored"}},"type":"object","title":"ClaimTemplateV1","description":"Per-reason helpdesk ticket override.\n\nEach field is optional with three meaningful states:\n- absent (``None``) → fall back to the shipped default for that reason\n- present-but-empty (``\"\"`` / ``[]``) → honored as-is (e.g. no tags)\n- present-non-empty → used verbatim\n\n``subject``/``body`` are string templates rendered with ``{placeholder}``\nvariables; the backend owns the variable vocabulary."},"ClaimTemplateV1-Output":{"properties":{"subject":{"title":"Subject","description":"Ticket subject template; absent → default, '' honored"},"body":{"title":"Body","description":"Ticket body template; absent → default, '' honored"},"tags":{"title":"Tags","description":"Ticket tags; absent → default ['karla'], [] honored"},"attachments":{"title":"Attachments","description":"Whether to attach claim images; absent → per-reason default"},"affidavit":{"title":"Affidavit","description":"Whether to attach the carrier affidavit PDF; absent → default off"},"agent_reply":{"title":"Agent Reply","description":"Auto agent reply posted after ticket creation; absent → no reply, '' honored as no reply, non-empty → sent"},"selected_items_format":{"title":"Selected Items Format","description":"Per-item template for the {selected_items} variable, rendered with {title}/{sku}/{quantity}/{net_price}; absent → default, '' honored"},"step_inputs_format":{"title":"Step Inputs Format","description":"Per-input template for the {step_inputs} variable (the customer's Resolve answers), rendered with {question}/{answer}/{step_id}; absent → default, '' honored"}},"type":"object","title":"ClaimTemplateV1","description":"Per-reason helpdesk ticket override.\n\nEach field is optional with three meaningful states:\n- absent (``None``) → fall back to the shipped default for that reason\n- present-but-empty (``\"\"`` / ``[]``) → honored as-is (e.g. no tags)\n- present-non-empty → used verbatim\n\n``subject``/``body`` are string templates rendered with ``{placeholder}``\nvariables; the backend owns the variable vocabulary."},"ClaimUpdateDTO":{"properties":{"resolution_preference":{"$ref":"#/components/schemas/ClaimResolutionPreference","nullable":true,"description":"Claim resolution preference","examples":["refund"]},"status":{"$ref":"#/components/schemas/ClaimStatus","nullable":true,"description":"Claim status","examples":["pending"]}},"type":"object","title":"ClaimUpdateDTO","description":"The Claim request data to be send in the body for an update."},"ClaimsPaginatedResponse-Input":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/ClaimResponseDTO-Input"},"type":"array","title":"Claims","description":"List of claims"},"pagination":{"$ref":"#/components/schemas/PaginationInfo-Input","description":"Pagination metadata"}},"type":"object","required":["claims","pagination"],"title":"ClaimsPaginatedResponse","description":"Paginated response for claims search."},"ClaimsPaginatedResponse-Output":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/ClaimResponseDTO-Output"},"type":"array","title":"Claims","description":"List of claims"},"pagination":{"$ref":"#/components/schemas/PaginationInfo-Output","description":"Pagination metadata"}},"type":"object","required":["claims","pagination"],"title":"ClaimsPaginatedResponse","description":"Paginated response for claims search."},"ClientIDAndSecretDTO":{"properties":{"client_id":{"type":"string","title":"Client Id","description":"The client id"},"client_secret":{"type":"string","nullable":true,"title":"Client Secret","description":"The client secret"}},"type":"object","required":["client_id"],"title":"ClientIDAndSecretDTO","description":"A client id and client key secret."},"ClientIDAndSecretSchema":{"properties":{"client_id":{"title":"Client Id","description":"The client id"},"client_secret":{"title":"Client Secret","description":"The client secret"}},"type":"object","required":["client_id"],"title":"ClientIDAndSecretSchema","description":"Schema for a client id and client key secret."},"CollectionPoint":{"properties":{"uuid":{"type":"string","nullable":true,"title":"Uuid","description":"Unique ID for the specific collection point."},"collection_point_identifier":{"type":"string","nullable":true,"title":"Collection Point Identifier","description":"Generated ID based on carrier unique ID and other system logic. The purpose of having this is to identify unique collection points and compare new and old collection points."},"address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Address of the collection point"},"status":{"type":"string","nullable":true,"title":"Status","description":"Collection point's activity status which is either 'active' or 'expired'"},"updated_date":{"type":"string","nullable":true,"title":"Updated Date","description":"Latest update time recorded for the information provided for the collection point in UTC+0."},"lat":{"type":"number","nullable":true,"title":"Lat","description":"Collection point address' latitude details."},"long":{"type":"number","nullable":true,"title":"Long","description":"Collection point address' longitude details."}},"type":"object","title":"CollectionPoint","description":"Collection point object schema."},"CountryInsightDTO":{"properties":{"country_code":{"type":"string","title":"Country Code","description":"ISO country code"},"shipment_count":{"type":"integer","title":"Shipment Count","description":"Total fulfillments to this country"},"tracking_companies":{"items":{"$ref":"#/components/schemas/TrackingCompanyInsightDTO"},"type":"array","title":"Tracking Companies","description":"Tracking companies used for this country"}},"type":"object","required":["country_code","shipment_count","tracking_companies"],"title":"CountryInsightDTO","description":"A destination country with its tracking companies."},"CreateDealDTO":{"properties":{"discount_id":{"type":"string","format":"uuid","title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"translations":{"items":{"$ref":"#/components/schemas/DealTranslations-Input"},"type":"array","nullable":true,"title":"Translations","description":"Translations"}},"type":"object","required":["discount_id"],"title":"CreateDealDTO","description":"Create deal DTO."},"CreateShipmentProductDTO":{"properties":{"product_id":{"type":"string","title":"Product Id","description":"The product ID (Shopify product_id)","examples":["7654321098765"]},"variant_id":{"type":"string","nullable":true,"title":"Variant Id","description":"The variant ID (Shopify variant_id)","examples":["43210987654321"]},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","description":"Quantity of this product in the shipment","default":1,"examples":[1,2]}},"type":"object","required":["product_id"],"title":"CreateShipmentProductDTO","description":"Product information for shipment creation."},"CreateShipmentRequestDTO":{"properties":{"order_id":{"type":"string","title":"Order Id","description":"Order identifier (format depends on order_id_type)","examples":["F-2025-31066","5512667890123","1234"]},"order_id_type":{"$ref":"#/components/schemas/OrderReferenceType","description":"Type of order identifier: `uuid` (Karla order UUID), `external_id` (Shopify order ID), `order_number` (merchant-visible order number), `order_name` (Shopify order name like F-2025-31066)","examples":["order_name","external_id","order_number","uuid"]},"tracking_number":{"type":"string","nullable":true,"title":"Tracking Number","description":"Carrier tracking number. If not provided, creates a draft shipment (ORDER_CREATED event).","examples":["RETURN123456789"]},"carrier_reference":{"type":"string","nullable":true,"title":"Carrier Reference","description":"Carrier reference code (e.g., 'dhl', 'ups'). If not provided, carrier will be auto-detected from tracking number.","examples":["dhl","ups","fedex"]},"direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"Shipment direction: `merchant_customer` (outbound to customer) or `customer_merchant` (return from customer)","default":"customer_merchant","examples":["customer_merchant","merchant_customer"]},"external_shipment_id":{"type":"string","nullable":true,"title":"External Shipment Id","description":"External shipment/return ID (e.g., Shopify return ID)","examples":["71765426559"]},"products":{"items":{"$ref":"#/components/schemas/CreateShipmentProductDTO"},"type":"array","nullable":true,"title":"Products","description":"Products included in this shipment (optional)"}},"type":"object","required":["order_id","order_id_type"],"title":"CreateShipmentRequestDTO","description":"Request DTO for creating a shipment.\n\nUsed for creating return shipments or other shipments via the API."},"DHLParcelDECredentialsDTO":{"properties":{"client_id":{"type":"string","minLength":1,"title":"Client Id","description":"DHL Parcel DE developer-portal app key (OAuth2 client_id)"},"client_secret":{"type":"string","minLength":1,"title":"Client Secret","description":"DHL Parcel DE developer-portal app secret (OAuth2 client_secret)"},"username":{"type":"string","minLength":1,"title":"Username","description":"DHL Parcel DE business-customer (GKP) system-user username"},"password":{"type":"string","minLength":1,"title":"Password","description":"DHL Parcel DE business-customer (GKP) system-user password"},"receiver_id":{"type":"string","nullable":true,"title":"Receiver Id","description":"DHL Parcel DE receiver ID — the billing-number-backed return location used to create labels (e.g. 'deu'). Resolvable via the Returns API /locations endpoint."}},"type":"object","required":["client_id","client_secret","username","password"],"title":"DHLParcelDECredentialsDTO","description":"Per-shop DHL Parcel DE business-customer credentials.\n\nKeyed by the ``dhl`` carrier reference. Authenticates the Parcel DE business\nAPIs (Returns, Shipping, ...) via OAuth2 ROPC — each shop owns its full set:\nthe developer-portal app keys (``client_id``/``client_secret``) and the GKP\nsystem-user login (``username``/``password``). Shared with other in-house\nsystems (e.g. karriers) via the same GCP secret."},"DamagedProductItemSchema":{"properties":{"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product item","examples":["PROD-001","ABC-XL-BLK",null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Product title","examples":["Wireless Mouse","Coffee Beans 1kg",null]},"quantity":{"type":"integer","title":"Quantity","description":"Quantity of the product item","examples":[1,2,5]},"net_price":{"type":"number","nullable":true,"title":"Net Price","description":"Price of the product without a discount and taxes applied","examples":[29.99,15.5,99.0,null]},"image_urls":{"items":{"type":"string"},"type":"array","title":"Image Urls","description":"List of image URLs of the product","default":[],"examples":[["https://cdn.shop.com/products/damaged-item-1.jpg","https://cdn.shop.com/products/damaged-item-2.jpg"],[]]}},"type":"object","required":["quantity"],"title":"DamagedProductItemSchema","description":"The Damaged product item data."},"Data":{"properties":{"shipment_uuid":{"type":"string","title":"Shipment Uuid","description":"Generated unique identifier for a shipment. Users can use this uuid to manage their shipments with other API functions."},"tracking_number":{"type":"string","nullable":true,"title":"Tracking Number","description":"Tracking number of the shipment."},"carrier_reference":{"type":"string","nullable":true,"title":"Carrier Reference","description":"Carrier reference number for the shipment."},"additional_info":{"additionalProperties":true,"type":"object","nullable":true,"title":"Additional Info","description":"Lists all custom fields added by the user for the shipment."},"expected_delivery":{"$ref":"#/components/schemas/api__schema__parcel_perform__ExpectedDelivery","nullable":true,"description":"Stores details pertaining to shipment's expected delivery values."},"all_events":{"items":{"$ref":"#/components/schemas/AllEvent"},"type":"array","nullable":true,"title":"All Events","description":"Lists all of the events processed for the shipment."},"new_events":{"items":{"$ref":"#/components/schemas/AllEvent"},"type":"array","nullable":true,"title":"New Events","description":"Lists all of the new events processed for the shipment."},"collection_point":{"$ref":"#/components/schemas/CollectionPoint","nullable":true,"description":"Collection point details."},"parcel_recipient_information":{"type":"string","nullable":true,"title":"Parcel Recipient Information","description":"Information related to the parcel recipient."},"sender_address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Sender Address."},"from_address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Sender Address."},"to_address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Recipient Address."},"recipient_address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Recipient Address."},"return_address":{"$ref":"#/components/schemas/Address","nullable":true,"description":"Return Address."}},"type":"object","required":["shipment_uuid"],"title":"Data","description":"Data object schema."},"DealDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Deal UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_name":{"type":"string","title":"Shop Name","description":"Shop name"},"discount_id":{"type":"string","format":"uuid","title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"rank":{"type":"integer","nullable":true,"title":"Rank","description":"Rank"},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"Discount"}},"type":"object","required":["uuid","shop_slug","shop_name","discount_id","brand_image_url","brand_logo_url","cta_url","title","description"],"title":"DealDTO","description":"Deal DTO."},"DealDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Deal UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_name":{"type":"string","title":"Shop Name","description":"Shop name"},"discount_id":{"type":"string","format":"uuid","title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"rank":{"type":"integer","nullable":true,"title":"Rank","description":"Rank"},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"Discount"}},"type":"object","required":["uuid","shop_slug","shop_name","discount_id","brand_image_url","brand_logo_url","cta_url","title","description"],"title":"DealDTO","description":"Deal DTO."},"DealDetailDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Deal UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_name":{"type":"string","title":"Shop Name","description":"Shop name"},"discount_id":{"type":"string","format":"uuid","title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"rank":{"type":"integer","nullable":true,"title":"Rank","description":"Rank"},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"Discount"},"translations":{"items":{"$ref":"#/components/schemas/DealTranslations-Input"},"type":"array","nullable":true,"title":"Translations","description":"All translations without language filtering"}},"type":"object","required":["uuid","shop_slug","shop_name","discount_id","brand_image_url","brand_logo_url","cta_url","title","description"],"title":"DealDetailDTO","description":"Deal detail DTO with all translations."},"DealDetailDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Deal UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_name":{"type":"string","title":"Shop Name","description":"Shop name"},"discount_id":{"type":"string","format":"uuid","title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"rank":{"type":"integer","nullable":true,"title":"Rank","description":"Rank"},"discount":{"$ref":"#/components/schemas/DiscountDTO","nullable":true,"description":"Discount"},"translations":{"items":{"$ref":"#/components/schemas/DealTranslations-Output"},"type":"array","nullable":true,"title":"Translations","description":"All translations without language filtering"}},"type":"object","required":["uuid","shop_slug","shop_name","discount_id","brand_image_url","brand_logo_url","cta_url","title","description"],"title":"DealDetailDTO","description":"Deal detail DTO with all translations."},"DealTranslations-Input":{"properties":{"language":{"type":"string","title":"Language"},"data":{"additionalProperties":{"type":"string"},"type":"object","title":"Data"}},"type":"object","required":["language","data"],"title":"DealTranslations","description":"Deal translations."},"DealTranslations-Output":{"properties":{"language":{"title":"Language"},"data":{"title":"Data"}},"type":"object","required":["language","data"],"title":"DealTranslations","description":"Deal translations."},"DealsWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"widget_type":{"type":"string","enum":["basic","discount_variation","deals_banner"],"nullable":true,"title":"Widget Type","description":"Type of deals widget display"}},"type":"object","title":"DealsWidgetDTO","description":"Configuration for the deals widget (formerly insights)."},"DiscountCategory":{"type":"string","enum":["percentage","fixed_amount","free_shipping"],"title":"DiscountCategory","description":"Type of the Discount to store."},"DiscountCreationDTO":{"properties":{"code":{"type":"string","nullable":true,"title":"Code","description":"Discount promotion code","examples":["KARLA"]},"target_selection":{"$ref":"#/components/schemas/DiscountTargetSelectionEnum","nullable":true,"description":"The selection method for line items or shipping lines to be discounted."},"target_type":{"$ref":"#/components/schemas/DiscountTargetTypeEnum","nullable":true,"description":"The type of item that the discount applies to."},"title":{"type":"string","nullable":true,"title":"Title","description":"The customer facing name of the discount"},"value_type":{"$ref":"#/components/schemas/DiscountValueTypeEnum","nullable":true,"description":"Type of discount value","examples":["percentage"]},"value":{"type":"number","nullable":true,"title":"Value","description":"Discount value based on its type","examples":[3.49]},"type":{"$ref":"#/components/schemas/DiscountTypeEnum","description":"Type of discount"}},"type":"object","required":["type"],"title":"DiscountCreationDTO","description":"The Discount request data to be send in the body for creation."},"DiscountDTO":{"properties":{"code":{"type":"string","nullable":true,"title":"Code","description":"Discount promotion code","examples":["KARLA"]},"target_selection":{"$ref":"#/components/schemas/DiscountTargetSelectionEnum","nullable":true,"description":"The selection method for line items or shipping lines to be discounted."},"target_type":{"$ref":"#/components/schemas/DiscountTargetTypeEnum","nullable":true,"description":"The type of item that the discount applies to."},"title":{"type":"string","nullable":true,"title":"Title","description":"The customer facing name of the discount"},"value_type":{"$ref":"#/components/schemas/DiscountValueTypeEnum","nullable":true,"description":"Type of discount value","examples":["percentage"]},"value":{"type":"number","nullable":true,"title":"Value","description":"Discount value based on its type","examples":[3.49]},"type":{"$ref":"#/components/schemas/DiscountTypeEnum","description":"Type of discount"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Discount UUID"}},"type":"object","required":["type","uuid"],"title":"DiscountDTO","description":"The Discount entity to be used in DTOs like nested objects."},"DiscountResponseDTO":{"properties":{"code":{"type":"string","nullable":true,"title":"Code","description":"Discount promotion code","examples":["KARLA"]},"target_selection":{"$ref":"#/components/schemas/DiscountTargetSelectionEnum","nullable":true,"description":"The selection method for line items or shipping lines to be discounted."},"target_type":{"$ref":"#/components/schemas/DiscountTargetTypeEnum","nullable":true,"description":"The type of item that the discount applies to."},"title":{"type":"string","nullable":true,"title":"Title","description":"The customer facing name of the discount"},"value_type":{"$ref":"#/components/schemas/DiscountValueTypeEnum","nullable":true,"description":"Type of discount value","examples":["percentage"]},"value":{"type":"number","nullable":true,"title":"Value","description":"Discount value based on its type","examples":[3.49]},"type":{"$ref":"#/components/schemas/DiscountTypeEnum","description":"Type of discount"},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Discount UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop identifier as a url slug","examples":["gokarla"]}},"type":"object","required":["type","uuid","shop_slug"],"title":"DiscountResponseDTO","description":"The order discount response data."},"DiscountTargetSelectionEnum":{"type":"string","enum":["all","group","specific"],"title":"DiscountTargetSelectionEnum","description":"Selection method for line items or shipping lines to be discounted."},"DiscountTargetTypeEnum":{"type":"string","enum":["line_item","shipping_line"],"title":"DiscountTargetTypeEnum","description":"Type of item that the discount applies to.."},"DiscountTypeEnum":{"type":"string","enum":["product","order","shipping"],"title":"DiscountTypeEnum","description":"Type of discount."},"DiscountUpdateDTO":{"properties":{"code":{"type":"string","nullable":true,"title":"Code","description":"Discount promotion code","examples":["KARLA"]},"target_selection":{"$ref":"#/components/schemas/DiscountTargetSelectionEnum","nullable":true,"description":"The selection method for line items or shipping lines to be discounted."},"target_type":{"$ref":"#/components/schemas/DiscountTargetTypeEnum","nullable":true,"description":"The type of item that the discount applies to."},"title":{"type":"string","nullable":true,"title":"Title","description":"The customer facing name of the discount"},"value_type":{"$ref":"#/components/schemas/DiscountValueTypeEnum","nullable":true,"description":"Type of discount value","examples":["percentage"]},"value":{"type":"number","nullable":true,"title":"Value","description":"Discount value based on its type","examples":[3.49]}},"type":"object","title":"DiscountUpdateDTO","description":"The Claim request data to be send in the body for an update."},"DiscountValueTypeEnum":{"type":"string","enum":["percentage","fixed_amount"],"title":"DiscountValueTypeEnum","description":"Type of value for order and product discounts."},"DixaSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"email_integration_id":{"type":"string","title":"Email Integration Id","description":"Dixa email contact-endpoint id new conversations belong to (e.g. 'support@example.email.dixa.io'), from GET /v1/contact-endpoints","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"Agent UUID to claim new conversations for (force=false). Unset → leave unassigned for Dixa's own queue routing"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"DixaSettingsV1","description":"Schema for a Shop.DixaSetting object.\n\nLike the other helpdesk integrations, Dixa carries only status plus the\nrouting values it needs and does not participate in the shipment-event\nnotification pipeline. Dixa has no per-tenant subdomain (a single global\nAPI), so it is gated on ``email_integration_id`` instead. Attachments are\nfetched by Dixa from the claim image URLs, so the affidavit PDF (which has\nno URL) is not attached for Dixa."},"DixaTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"email_integration_id":{"type":"string","title":"Email Integration Id","description":"Dixa email contact-endpoint id (e.g. 'support@acme.dixa.io')","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"Agent UUID to assign new conversations to; absent → unassigned"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"DixaTriggerSettingsDTO","description":"Dixa-specific trigger settings for public API.\n\nDixa has no tenant subdomain (a single global API), so it is configured\nwith the email integration (\"mailbox\") id new conversations belong to and\nan optional agent to assign them to. It does not attach the affidavit PDF\n(Dixa fetches attachments by URL and the PDF has none), so it omits the\naffidavit fields the other helpdesks expose."},"DixaTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"email_integration_id":{"type":"string","title":"Email Integration Id","description":"Dixa email contact-endpoint id (e.g. 'support@acme.dixa.io')","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"Agent UUID to assign new conversations to; absent → unassigned"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"DixaTriggerSettingsDTO","description":"Dixa-specific trigger settings for public API.\n\nDixa has no tenant subdomain (a single global API), so it is configured\nwith the email integration (\"mailbox\") id new conversations belong to and\nan optional agent to assign them to. It does not attach the affidavit PDF\n(Dixa fetches attachments by URL and the PDF has none), so it omits the\naffidavit fields the other helpdesks expose."},"DixaTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"email_integration_id":{"type":"string","nullable":true,"title":"Email Integration Id","description":"Dixa email contact-endpoint id; absent → unchanged"},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"Agent UUID to assign new conversations to; absent → unchanged"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"DixaTriggerSettingsUpdateDTO","description":"Dixa-specific trigger settings update for public API."},"DnsRecordDTO":{"properties":{"record_type":{"type":"string","enum":["CNAME","MX","TXT"],"title":"Record Type","description":"DNS record type","examples":["CNAME"]},"name":{"type":"string","title":"Name","description":"DNS record name (host) to publish","examples":["abc123._domainkey.example.com"]},"value":{"type":"string","title":"Value","description":"DNS record value to publish","examples":["abc123.dkim.amazonses.com"]},"priority":{"type":"integer","nullable":true,"title":"Priority","description":"Record priority. Only set for MX records.","examples":[10,null]},"purpose":{"type":"string","enum":["dkim","mail_from_mx","mail_from_spf","shop_challenge"],"title":"Purpose","description":"What this record is used for","examples":["dkim"]}},"type":"object","required":["record_type","name","value","purpose"],"title":"DnsRecordDTO","description":"A single DNS record the shop owner must publish to verify the identity."},"EmailAddress":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"RFC 5322 email address","examples":["customer@example.com"]},"name":{"type":"string","maxLength":128,"nullable":true,"title":"Name","description":"Optional display name shown to recipients","examples":["Jane Doe"]}},"type":"object","required":["email"],"title":"EmailAddress","description":"Single email address with optional display name."},"EmailApiKeyDTO":{"properties":{"account_email":{"type":"string","title":"Account Email","description":"Account email used as the Basic auth username"},"api_key":{"type":"string","minLength":8,"title":"Api Key","description":"The API key used as the Basic auth password"}},"type":"object","required":["account_email","api_key"],"title":"EmailApiKeyDTO","description":"Account email + API key Basic-auth, shared by Gorgias and Zendesk."},"EmailHelpdeskSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the email helpdesk fallback is enabled","default":"disabled"},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox that receives the claim emails"},"affidavit":{"type":"boolean","title":"Affidavit","description":"Whether to attach the carrier affidavit PDF to claim emails","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template. Unset → route by shipment carrier, then neutral fallback"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"subject_templates":{"additionalProperties":{"type":"string"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Subject Templates","description":"Per-reason email subject overrides, rendered with {placeholder} variables; absent reason → shipped default subject. The email body stays fixed (it is a versioned parse contract); only the subject is configurable"},"body_template_ids":{"additionalProperties":{"type":"string","format":"uuid"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Body Template Ids","description":"Per-reason pointer at a merchant email-template (an ``email_templates`` row cloned from the catalog) whose HTML replaces the fixed body for that reason; absent reason → shipped default body. The merchant owns the HTML structure, so keeping the class-tagged parse contract is on the merchant's edited template"}},"type":"object","title":"EmailHelpdeskSettingsV1","description":"Schema for the email helpdesk fallback settings.\n\nThe fallback for shops without a Gorgias/Zendesk integration: claims are\nsent as ticket emails to the merchant's support inbox instead of via a\nhelpdesk API. One-way only - there is no provider ticket id and no agent\nreply. The email layout defaults to a fixed class-tagged HTML body that\nmerchant helpdesk software parses (a versioned contract owned by the\nbackend); a merchant may override the body per reason via\n``body_template_ids``, taking ownership of the parse contract in that\ntemplate."},"EmailHelpdeskTriggerSettingsDTO":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox that receives the claim emails"},"affidavit":{"type":"boolean","title":"Affidavit","description":"Whether to attach the carrier affidavit PDF to claim emails","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"subject_templates":{"additionalProperties":{"type":"string"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Subject Templates","description":"Per-reason email subject overrides; absent reason → default"},"body_template_ids":{"additionalProperties":{"type":"string","format":"uuid"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Body Template Ids","description":"Per-reason merchant body-template pointers; absent → default"}},"type":"object","required":["status"],"title":"EmailHelpdeskTriggerSettingsDTO","description":"Email helpdesk fallback trigger settings for public API.\n\nNote: the email body layout is fixed (not merchant-templatable) because\nmerchant helpdesk parsers depend on its class-tagged structure. Only the\nsubject is configurable, so unlike Gorgias/Zendesk there is no full\ntemplates field and no subdomain."},"EmailHelpdeskTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox; absent → unchanged"},"affidavit":{"type":"boolean","nullable":true,"title":"Affidavit","description":"Whether to attach the carrier affidavit PDF; absent → unchanged"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line; absent → unchanged"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier for affidavit routing; absent → unchanged"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category; absent → unchanged"},"subject_templates":{"additionalProperties":{"type":"string"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Subject Templates","description":"Per-reason email subject overrides; absent → unchanged"},"body_template_ids":{"additionalProperties":{"type":"string","format":"uuid"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Body Template Ids","description":"Per-reason merchant body-template pointers; absent → unchanged"}},"type":"object","title":"EmailHelpdeskTriggerSettingsUpdateDTO","description":"Email helpdesk fallback trigger settings update for public API."},"EmailIdentityVerificationStatus":{"type":"string","enum":["pending","success","failed","temporary_failure","not_started"],"title":"EmailIdentityVerificationStatus","description":"SES verification status for a domain identity or its MAIL FROM domain.\n\nLowercased 1:1 from SES's `VerificationStatus` enum, no lossy internal\nmapping:\n- PENDING: verification in progress, DNS not yet observed as correct.\n- SUCCESS: verified.\n- FAILED: SES could not verify the identity.\n- TEMPORARY_FAILURE: transient SES-side issue; retry later.\n- NOT_STARTED: verification has not been attempted yet."},"EmailTemplateCatalogAdminDTO":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Catalog template UUID"},"name":{"type":"string","title":"Name","description":"Human-readable template name"},"locale":{"$ref":"#/components/schemas/LanguageEnum","description":"Template locale"},"subject":{"type":"string","title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Free-form organizational tags (empty when none)."},"is_published":{"type":"boolean","title":"Is Published","description":"Whether the template is visible in the merchant gallery"}},"type":"object","required":["uuid","name","locale","subject","html","tags","is_published"],"title":"EmailTemplateCatalogAdminDTO","description":"A catalog template as seen by super admins (includes publish state)."},"EmailTemplateCatalogCreateDTO":{"properties":{"name":{"type":"string","title":"Name","description":"Human-readable template name"},"subject":{"type":"string","title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"locale":{"$ref":"#/components/schemas/LanguageEnum","description":"Template locale","default":"en"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Free-form organizational tags"},"is_published":{"type":"boolean","title":"Is Published","description":"Whether to publish to the merchant gallery immediately","default":false}},"type":"object","required":["name","subject","html"],"title":"EmailTemplateCatalogCreateDTO","description":"Request body to create a catalog template."},"EmailTemplateCatalogDTO":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Catalog template UUID"},"name":{"type":"string","title":"Name","description":"Human-readable template name"},"locale":{"$ref":"#/components/schemas/LanguageEnum","description":"Template locale"},"subject":{"type":"string","title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Free-form organizational tags (empty when none)."}},"type":"object","required":["uuid","name","locale","subject","html","tags"],"title":"EmailTemplateCatalogDTO","description":"A published catalog email template, as exposed to merchants."},"EmailTemplateCatalogUpdateDTO":{"properties":{"name":{"type":"string","nullable":true,"title":"Name","description":"Human-readable template name"},"subject":{"type":"string","nullable":true,"title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","nullable":true,"title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"locale":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Template locale"},"tags":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Tags","description":"Free-form organizational tags"},"is_published":{"type":"boolean","nullable":true,"title":"Is Published","description":"Whether the template is visible in the merchant gallery"}},"type":"object","title":"EmailTemplateCatalogUpdateDTO","description":"Request body to update a catalog template (partial)."},"EmailTemplateCreateDTO":{"properties":{"clone_from_catalog_id":{"type":"string","format":"uuid","nullable":true,"title":"Clone From Catalog Id","description":"Published catalog template to clone from"},"name":{"type":"string","nullable":true,"title":"Name","description":"Human-readable template name"},"subject":{"type":"string","nullable":true,"title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","nullable":true,"title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"locale":{"$ref":"#/components/schemas/LanguageEnum","description":"Template locale","default":"en"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Free-form organizational tags"}},"type":"object","title":"EmailTemplateCreateDTO","description":"Request body to create a shop email template.\n\nEither supply ``clone_from_catalog_id`` to copy a published catalog template,\nor supply ``name`` + ``subject`` + ``html`` to author one from scratch."},"EmailTemplateDTO":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Template UUID"},"name":{"type":"string","title":"Name","description":"Human-readable template name"},"locale":{"$ref":"#/components/schemas/LanguageEnum","description":"Template locale"},"subject":{"type":"string","title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Free-form organizational tags (empty when none)."},"is_active":{"type":"boolean","title":"Is Active","description":"Whether the template is usable in Flow"},"cloned_from_catalog_id":{"type":"string","format":"uuid","nullable":true,"title":"Cloned From Catalog Id","description":"Catalog template this was cloned from, if any"}},"type":"object","required":["uuid","name","locale","subject","html","tags","is_active"],"title":"EmailTemplateDTO","description":"A merchant-owned email template."},"EmailTemplateSendRequestDTO":{"properties":{"template_id":{"type":"string","format":"uuid","title":"Template Id","description":"The shop-owned email template to render"},"to":{"$ref":"#/components/schemas/EmailAddress","description":"The email recipient"},"variables":{"additionalProperties":{"type":"string"},"type":"object","title":"Variables","description":"Values substituted into the template's {{ token }} placeholders. Only tokens listed by GET /v1/email-templates/variables are substituted; unknown keys are accepted and ignored."},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key","description":"Deterministic key deduping the send across retries (e.g. derived from the Flow action_run_id).","examples":["flow-email:action-run-1234"]},"notification_type":{"type":"string","maxLength":64,"minLength":1,"title":"Notification Type","description":"Category for BQ analytics (unified-events event_group).","default":"flow_email"},"shipment_id":{"type":"string","format":"uuid","nullable":true,"title":"Shipment Id","description":"Related shipment UUID when a shipment triggered the email."}},"type":"object","required":["template_id","to","idempotency_key"],"title":"EmailTemplateSendRequestDTO","description":"Request body to render a shop email template and enqueue delivery.\n\nThe shop is always derived from the authorized path slug, never from\nthis body. Unknown variable keys are accepted and ignored so producers\ncan forward their full payload without tracking the variable registry."},"EmailTemplateSendResponseDTO":{"properties":{"status":{"type":"string","const":"enqueued","title":"Status","description":"Always 'enqueued' — delivery is asynchronous.","default":"enqueued"},"idempotency_key":{"type":"string","title":"Idempotency Key","description":"Echo of the request idempotency key."},"template_id":{"type":"string","format":"uuid","title":"Template Id","description":"Echo of the rendered template."},"subject":{"type":"string","title":"Subject","description":"The rendered subject line."}},"type":"object","required":["idempotency_key","template_id","subject"],"title":"EmailTemplateSendResponseDTO","description":"Response for an accepted (rendered and enqueued) templated email."},"EmailTemplateUpdateDTO":{"properties":{"name":{"type":"string","nullable":true,"title":"Name","description":"Human-readable template name"},"subject":{"type":"string","nullable":true,"title":"Subject","description":"Token-template subject; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"html":{"type":"string","nullable":true,"title":"Html","description":"Token-template HTML body; may contain {{ token }} placeholders (see GET /v1/email-templates/variables). Not a Jinja2 template."},"locale":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Template locale"},"tags":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Tags","description":"Free-form organizational tags"},"is_active":{"type":"boolean","nullable":true,"title":"Is Active","description":"Whether the template is usable in Flow"}},"type":"object","title":"EmailTemplateUpdateDTO","description":"Request body to update a shop email template (partial)."},"EmailTemplateVariableDTO":{"properties":{"name":{"type":"string","title":"Name","description":"The variable token name."},"description":{"type":"string","title":"Description","description":"Human-readable description."}},"type":"object","required":["name","description"],"title":"EmailTemplateVariableDTO","description":"A single template variable."},"EmailTemplateVariablesResponseDTO":{"properties":{"variables":{"items":{"$ref":"#/components/schemas/EmailTemplateVariableDTO"},"type":"array","title":"Variables","description":"Available email-template variables."}},"type":"object","required":["variables"],"title":"EmailTemplateVariablesResponseDTO","description":"The email-template variable registry."},"EmailTier":{"type":"string","enum":["basic","enterprise","eu"],"title":"EmailTier","description":"Email delivery tier a shop can be assigned to.\n\n``eu`` designates delivery via an EU-based provider."},"EmarsysSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true}},"type":"object","title":"EmarsysSettingsV1","description":"Schema for a Shop.EmarsysSetting object."},"EmarsysTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]}},"type":"object","required":["status"],"title":"EmarsysTriggerSettingsDTO","description":"Emarsys-specific trigger settings for public API."},"EmarsysTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]}},"type":"object","required":["status"],"title":"EmarsysTriggerSettingsDTO","description":"Emarsys-specific trigger settings for public API."},"EmarsysTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"}},"type":"object","title":"EmarsysTriggerSettingsUpdateDTO","description":"Emarsys-specific trigger settings update for public API."},"ErrorDTO":{"properties":{"errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/ValidationErrorDTO"},"type":"array"},{}],"title":"Errors","description":"Error list","default":[]},"key":{"anyOf":[{"$ref":"#/components/schemas/ErrorKeyEnum"},{"type":"string"},{"type":"null"}],"title":"Key","description":"Descriptive error key. While this accepts any string for backward compatibility, the API will only return values from ErrorKeyEnum.","examples":["shop_not_found","order_exists","invalid_payload","bad_gateway",null]},"message":{"type":"string","nullable":true,"title":"Message","description":"Generic error message","examples":["Shop not found","Order with this ID already exists",null]},"type":{"$ref":"#/components/schemas/ErrorTypeEnum","description":"Type of error","default":"api_error","examples":["api_error","invalid_request_error"]},"details":{"additionalProperties":true,"type":"object","nullable":true,"title":"Details","description":"Machine-readable context for the error. The shape is specific to `key` and is not a stable flat bag — read it only after branching on `key`, and treat every field as optional. Null for errors that carry no context.","examples":[{"reason":"existing_return","return_id":"RET1234567890"},null]}},"type":"object","title":"ErrorDTO","description":"Unified errors schema."},"ErrorKeyEnum":{"type":"string","enum":["a_b_test_not_found","a_b_test_overlap","announcement_exists","announcement_not_found","campaign_active_segment_exists","campaign_exists","campaign_not_found","campaign_product_not_found","campaign_type_invalid","carrier_reference_invalid","deal_not_found","discount_exists","discount_not_found","image_media_unsupported","invalid_payload","klaviyo_key_missing_permissions","klaviyo_key_not_found","order_exists","order_not_found","org_exists","org_not_found","permission_denied","return_label_already_exists","shipment_exists","shipment_not_found","shop_exists","shop_fixtures_not_found","shop_not_found","shop_settings_not_found","user_exists","user_not_found","webhook_exists","webhook_not_found","zip_code_invalid","bad_gateway","service_not_implemented","unexpected"],"title":"ErrorKeyEnum","description":"Possible error keys that can be returned by the API.\n\nThese keys are used to provide a more descriptive error message\nand can be used for localization or specific error handling."},"ErrorTypeEnum":{"type":"string","enum":["api_error","invalid_request_error","authentication_error"],"title":"ErrorTypeEnum","description":"Type of errors that will be returned to the user."},"Event":{"properties":{"event_key":{"type":"string","title":"Event Key","description":"Internal event code. Required on ingestion. DEPRECATED in responses: read `event_name` instead; this field will be removed from responses in API v2.","deprecated":true,"examples":["H10","C20","A12","A10"]},"time":{"type":"string","format":"date-time","nullable":true,"title":"Time","description":"Event Time","examples":["2024-01-15T14:30:00Z","2024-01-16T09:15:00Z",null]},"timezone":{"type":"string","nullable":true,"title":"Timezone","description":"Event Timezone","examples":["Europe/Berlin","America/New_York","UTC",null]},"location":{"additionalProperties":true,"type":"object","nullable":true,"title":"Location","description":"Event Location","examples":[{"city":"Berlin","country":"DE","zip":"10115"},{"city":"Hamburg","country":"DE","state":"Hamburg"},null]},"additional_info":{"$ref":"#/components/schemas/EventAdditionalInfo","nullable":true,"description":"Event Additional Info","examples":[{"carrier_name":"dhl","mail_message":"Package ready for pickup","merchant_name":"Example Shop","pickup_opening_hours":{"Mon-Fri":"00:00-24:00","Sat-Sun":"00:00-24:00"},"pickup_point":"DHL Packstation 123","pickup_point_url":"https://www.dhl.de/packstation/123","pickup_time":"2024-01-20T18:00:00+00:00","preferred_delivery_date":"2024-01-18T12:00:00","tracking_company":"DHL","tracking_link":"https://www.dhl.de/track?piececode=00340434298376542088"},{"carrier_name":"hermes","mail_message":"Delivery attempted - recipient not at home","tracking_company":"Hermes"},null]}},"type":"object","required":["event_key"],"title":"Event","description":"Schema for a event sub-partial for a `Shipment.Event` object."},"EventAdditionalInfo":{"properties":{"pickup_point":{"type":"string","nullable":true,"title":"Pickup Point"},"pickup_point_url":{"type":"string","nullable":true,"title":"Pickup Point Url"},"pickup_time":{"type":"string","format":"date-time","nullable":true,"title":"Pickup Time"},"pickup_opening_hours":{"additionalProperties":{"type":"string"},"type":"object","nullable":true,"title":"Pickup Opening Hours"},"mail_message":{"type":"string","nullable":true,"title":"Mail Message"},"merchant_name":{"type":"string","nullable":true,"title":"Merchant Name"},"preferred_delivery_date":{"type":"string","format":"date-time","nullable":true,"title":"Preferred Delivery Date"},"tracking_link":{"type":"string","nullable":true,"title":"Tracking Link"},"carrier_name":{"type":"string","nullable":true,"title":"Carrier Name"},"tracking_company":{"type":"string","nullable":true,"title":"Tracking Company"},"date":{"type":"string","format":"date-time","nullable":true,"title":"Date"}},"type":"object","title":"EventAdditionalInfo","description":"Schema for a `Shipment.Event` object's additional info."},"ExampleWithGroups":{"properties":{"message":{"type":"string","title":"Message","description":"The example message"},"matched_groups":{"additionalProperties":{"type":"string"},"type":"object","nullable":true,"title":"Matched Groups","description":"Named groups extracted from the message using the regex pattern"}},"type":"object","required":["message"],"title":"ExampleWithGroups","description":"Example message with extracted regex groups."},"ExpectedDeliverySourceEnum":{"type":"string","enum":["pp","hc","mail","aftership","aftership_carrier","aftership_ai","aftership_edd","aftership_custom","aftership_order"],"title":"ExpectedDeliverySourceEnum","description":"Expected Delivery Source - Internal granular tracking."},"FeatureCommunity":{"type":"string","enum":["alpha","beta","live"],"title":"FeatureCommunity","description":"Enum for identifying the feature flag community."},"FieldUpdateRequestDTO":{"properties":{"path":{"type":"string","minLength":1,"title":"Path","description":"Dot-notation path to the field (e.g., 'triggers.data.klaviyo.stale_event_threshold')"},"value":{"title":"Value","description":"New value for the field"}},"type":"object","required":["path","value"],"title":"FieldUpdateRequestDTO","description":"Request DTO for updating a single shop settings field."},"FieldUpdateResponseDTO":{"properties":{"path":{"type":"string","title":"Path","description":"Dot-notation path that was updated"},"previous_value":{"title":"Previous Value","description":"Previous value of the field"},"new_value":{"title":"New Value","description":"New value of the field after update"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the update was applied"}},"type":"object","required":["path","previous_value","new_value","updated_at"],"title":"FieldUpdateResponseDTO","description":"Response DTO for field update operation."},"FinancialStatusEnum":{"type":"string","enum":["authorized","paid","partially_paid","partially_refunded","pending","refunded","voided"],"title":"FinancialStatusEnum","description":"Order Financial Status from Shopify.\n\nRepresents the payment/refund state of an order."},"FlagEnum":{"type":"string","enum":["normal","delay","error"],"title":"FlagEnum","description":"Karla internal shipment flag.\n\nRaises the possibility of failure or delay when not normal.\nOptions: normal, delay, error."},"FrontSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"inbox_id":{"type":"string","title":"Inbox Id","description":"Front inbox id for imported message import","default":""},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox address used as the imported message To"},"reply_channel_id":{"type":"string","nullable":true,"title":"Reply Channel Id","description":"Front channel id used when sending the auto agent reply"},"reply_author_id":{"type":"string","nullable":true,"title":"Reply Author Id","description":"Front teammate id the auto agent reply is sent on behalf of"},"reply_subject":{"type":"string","nullable":true,"title":"Reply Subject","description":"Subject used for the auto agent reply email"},"skip_rules":{"type":"boolean","title":"Skip Rules","description":"Whether imported messages should skip Front automation rules","default":true},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after importing the message; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after import, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"archive_after_reply":{"type":"boolean","title":"Archive After Reply","description":"Whether the conversation is archived when the auto reply is sent","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template. Unset → route by shipment carrier, then neutral fallback"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"FrontSettingsV1","description":"Schema for a Shop.FrontSetting object.\n\nFront has no per-tenant subdomain. Claims are imported as inbound HTML\nemail messages into a configured inbox, then optionally acknowledged with\nan agent reply in the same conversation."},"FrontTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"inbox_id":{"type":"string","title":"Inbox Id","description":"Front inbox id (e.g. 'inb_123')","default":""},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox that receives imported claim messages"},"reply_channel_id":{"type":"string","nullable":true,"title":"Reply Channel Id","description":"Front channel id used for the auto agent reply"},"reply_author_id":{"type":"string","nullable":true,"title":"Reply Author Id","description":"Front teammate id used for the auto agent reply"},"reply_subject":{"type":"string","nullable":true,"title":"Reply Subject","description":"Subject used for the auto agent reply email"},"skip_rules":{"type":"boolean","title":"Skip Rules","description":"Whether imported messages should skip Front automation rules","default":true},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after importing the message; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after import, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"archive_after_reply":{"type":"boolean","title":"Archive After Reply","description":"Whether the conversation is archived when the auto reply is sent","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"FrontTriggerSettingsDTO","description":"Front-specific trigger settings for public API.\n\nFront imports inbound claim messages as HTML email into a configured inbox\nand can optionally send a same-conversation acknowledgement reply."},"FrontTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"inbox_id":{"type":"string","title":"Inbox Id","description":"Front inbox id (e.g. 'inb_123')","default":""},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox that receives imported claim messages"},"reply_channel_id":{"type":"string","nullable":true,"title":"Reply Channel Id","description":"Front channel id used for the auto agent reply"},"reply_author_id":{"type":"string","nullable":true,"title":"Reply Author Id","description":"Front teammate id used for the auto agent reply"},"reply_subject":{"type":"string","nullable":true,"title":"Reply Subject","description":"Subject used for the auto agent reply email"},"skip_rules":{"type":"boolean","title":"Skip Rules","description":"Whether imported messages should skip Front automation rules","default":true},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after importing the message; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after import, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"archive_after_reply":{"type":"boolean","title":"Archive After Reply","description":"Whether the conversation is archived when the auto reply is sent","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"FrontTriggerSettingsDTO","description":"Front-specific trigger settings for public API.\n\nFront imports inbound claim messages as HTML email into a configured inbox\nand can optionally send a same-conversation acknowledgement reply."},"FrontTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"inbox_id":{"type":"string","nullable":true,"title":"Inbox Id","description":"Front inbox id; absent → unchanged"},"recipient_email":{"type":"string","format":"email","nullable":true,"title":"Recipient Email","description":"Merchant support inbox; absent → unchanged"},"reply_channel_id":{"type":"string","nullable":true,"title":"Reply Channel Id","description":"Front channel id for the auto reply; absent → unchanged"},"reply_author_id":{"type":"string","nullable":true,"title":"Reply Author Id","description":"Front teammate id for the auto reply; absent → unchanged"},"reply_subject":{"type":"string","nullable":true,"title":"Reply Subject","description":"Auto reply subject; absent → unchanged"},"skip_rules":{"type":"boolean","nullable":true,"title":"Skip Rules","description":"Whether imported messages skip Front rules; absent → unchanged"},"send_auto_reply":{"type":"boolean","nullable":true,"title":"Send Auto Reply","description":"Whether to send the auto agent reply; absent → unchanged"},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template; absent → unchanged"},"archive_after_reply":{"type":"boolean","nullable":true,"title":"Archive After Reply","description":"Whether to archive after the auto reply; absent → unchanged"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line; absent → unchanged"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; absent → unchanged"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category; absent → unchanged"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"FrontTriggerSettingsUpdateDTO","description":"Front-specific trigger settings update for public API."},"GenerateReturnLabelRequestDTO":{"properties":{"order_reference":{"type":"string","title":"Order Reference","description":"Order identifier"},"order_reference_type":{"$ref":"#/components/schemas/OrderReferenceType","description":"How to interpret order_reference","default":"order_number"},"carrier":{"$ref":"#/components/schemas/CarrierEnum","description":"Deprecated: no longer selects the return provider (the shop's enabled provider is used regardless of carrier)","default":"dhl"},"shipper":{"$ref":"#/components/schemas/ReturnLabelShipperDTO","description":"The returning customer's address"},"customer_reference":{"type":"string","maxLength":30,"nullable":true,"title":"Customer Reference","description":"Reference printed on the label (e.g. RMA / order number)"},"shipment_reference":{"type":"string","nullable":true,"title":"Shipment Reference","description":"Internal shipment reference"},"item_weight":{"$ref":"#/components/schemas/ReturnLabelWeightDTO","nullable":true,"description":"Optional parcel weight"},"item_value":{"$ref":"#/components/schemas/ReturnLabelValueDTO","nullable":true,"description":"Optional declared value"},"locale":{"type":"string","maxLength":35,"nullable":true,"title":"Locale","description":"Shopper's UI language (BCP 47, e.g. 'de' or 'de-DE'). Selects the language of the return-label email; defaults to English."}},"type":"object","required":["order_reference","shipper"],"title":"GenerateReturnLabelRequestDTO","description":"Request body for ``POST /shops/{slug}/returns/labels``."},"GenerateReturnLabelResponseDTO":{"properties":{"tracking_number":{"type":"string","title":"Tracking Number","description":"DHL shipment number (the tracking number)"},"carrier_reference":{"type":"string","title":"Carrier Reference","description":"Carrier reference of the created return shipment"},"shipment_uuid":{"type":"string","format":"uuid","title":"Shipment Uuid","description":"UUID of the created return shipment"},"return_id":{"type":"string","nullable":true,"title":"Return Id","description":"DHL return order id (RET...)"},"label_base64":{"type":"string","nullable":true,"title":"Label Base64","description":"Base64-encoded PDF label (DHL Parcel DE)"},"label_url":{"type":"string","nullable":true,"title":"Label Url","description":"URL to download the label document (label service)"},"qr_code_base64":{"type":"string","nullable":true,"title":"Qr Code Base64","description":"Base64-encoded QR label (PNG); national returns only"}},"type":"object","required":["tracking_number","carrier_reference","shipment_uuid"],"title":"GenerateReturnLabelResponseDTO","description":"Response for a generated return label."},"GorgiasSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Gorgias tenant subdomain used to build the API base URL https://{subdomain}.gorgias.com","default":""},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template. Unset → route by shipment carrier, then neutral fallback"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"use_email_channel":{"type":"boolean","title":"Use Email Channel","description":"Send the inbound claim message as the 'email' channel instead of 'api'; the ticket is still created over the API, only the payload channel changes so merchant automation rules treat it as email","default":false},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after creating the ticket; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after ticket creation, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"reply_from_address":{"type":"string","format":"email","nullable":true,"title":"Reply From Address","description":"Merchant's connected Gorgias email integration used as the auto-reply sender (e.g. 'service@brand.com'); must match a sendable channel in Gorgias or the reply is rejected. Absent → auto-reply is skipped"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"GorgiasSettingsV1","description":"Schema for a Shop.GorgiasSetting object.\n\nHelpdesk integrations only carry status and the tenant subdomain - they\ndo not participate in the shipment-event notification pipeline, so they\nomit the trigger/stale/segment fields the marketing integrations use."},"GorgiasTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Gorgias tenant subdomain (e.g., 'acme')","default":""},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"use_email_channel":{"type":"boolean","title":"Use Email Channel","description":"Send the inbound claim message as the 'email' channel instead of 'api' so merchant automation rules treat it as email","default":false},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after creating the ticket; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after ticket creation, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"reply_from_address":{"type":"string","format":"email","nullable":true,"title":"Reply From Address","description":"Connected Gorgias email integration used as the auto-reply sender; absent → auto-reply is skipped"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"GorgiasTriggerSettingsDTO","description":"Gorgias-specific trigger settings for public API.\n\nNote: helpdesk integrations only expose status and the tenant subdomain."},"GorgiasTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Gorgias tenant subdomain (e.g., 'acme')","default":""},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"use_email_channel":{"type":"boolean","title":"Use Email Channel","description":"Send the inbound claim message as the 'email' channel instead of 'api' so merchant automation rules treat it as email","default":false},"send_auto_reply":{"type":"boolean","title":"Send Auto Reply","description":"Whether to auto-reply to the customer after creating the ticket; the reply is only sent when this is True and agent_reply is non-empty","default":false},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template posted after ticket creation, rendered with the claim context; absent/'' → no reply, gated by send_auto_reply"},"reply_from_address":{"type":"string","format":"email","nullable":true,"title":"Reply From Address","description":"Connected Gorgias email integration used as the auto-reply sender; absent → auto-reply is skipped"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"GorgiasTriggerSettingsDTO","description":"Gorgias-specific trigger settings for public API.\n\nNote: helpdesk integrations only expose status and the tenant subdomain."},"GorgiasTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","nullable":true,"title":"Subdomain","description":"Gorgias tenant subdomain (e.g., 'acme')"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line; absent → unchanged"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier for affidavit routing; absent → unchanged"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category; absent → unchanged"},"use_email_channel":{"type":"boolean","nullable":true,"title":"Use Email Channel","description":"Send the claim message as 'email' channel; absent → unchanged"},"send_auto_reply":{"type":"boolean","nullable":true,"title":"Send Auto Reply","description":"Auto-reply to the customer after the ticket; absent → unchanged"},"agent_reply":{"type":"string","nullable":true,"title":"Agent Reply","description":"Brand-level auto agent reply template; absent → unchanged"},"reply_from_address":{"type":"string","format":"email","nullable":true,"title":"Reply From Address","description":"Connected Gorgias email for the reply; absent → unchanged"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"GorgiasTriggerSettingsUpdateDTO","description":"Gorgias-specific trigger settings update for public API."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HubSpotSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true}},"type":"object","title":"HubSpotSettingsV1","description":"Schema for a Shop.HubSpotSetting object.\n\nPortal ID is automatically fetched from HubSpot API.\nNo manual configuration needed."},"HubSpotTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"portal_id":{"type":"string","title":"Portal Id","description":"HubSpot Portal ID","default":""}},"type":"object","required":["status"],"title":"HubSpotTriggerSettingsDTO","description":"HubSpot-specific trigger settings for public API."},"HubSpotTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"portal_id":{"type":"string","title":"Portal Id","description":"HubSpot Portal ID","default":""}},"type":"object","required":["status"],"title":"HubSpotTriggerSettingsDTO","description":"HubSpot-specific trigger settings for public API."},"HubSpotTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"},"portal_id":{"type":"string","nullable":true,"title":"Portal Id","description":"HubSpot Portal ID"}},"type":"object","title":"HubSpotTriggerSettingsUpdateDTO","description":"HubSpot-specific trigger settings update for public API."},"ImageResponseDTO":{"properties":{"url":{"type":"string","title":"Url","description":"The public url of the uploaded image"},"image_type":{"$ref":"#/components/schemas/ImageType","description":"The type of image uploaded"},"shop_slug":{"type":"string","title":"Shop Slug","description":"The slug of the shop the image belongs to"}},"type":"object","required":["url","image_type","shop_slug"],"title":"ImageResponseDTO","description":"Response after uploading an image file."},"ImageType":{"type":"string","enum":["background","claim","logo","signature","product","voucher"],"title":"ImageType","description":"Type of image that is allowed by the system."},"IntercomRegion":{"type":"string","enum":["us","eu","au"],"title":"IntercomRegion","description":"Intercom workspace data region (selects the API host)."},"IntercomSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"region":{"$ref":"#/components/schemas/IntercomRegion","description":"Intercom workspace data region (US/EU/AU API host)","default":"us"},"ticket_type_id":{"type":"string","title":"Ticket Type Id","description":"Intercom ticket type id for new claim tickets","default":""},"admin_assignee_id":{"type":"string","nullable":true,"title":"Admin Assignee Id","description":"Admin id to assign new tickets to"},"team_assignee_id":{"type":"string","nullable":true,"title":"Team Assignee Id","description":"Team id to assign new tickets to"},"tag_admin_id":{"type":"string","nullable":true,"title":"Tag Admin Id","description":"Admin id used when attaching template tags; unset → tags are skipped"},"skip_notifications":{"type":"boolean","title":"Skip Notifications","description":"Whether Intercom should skip customer notifications","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template. Unset → route by shipment carrier, then neutral fallback"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"IntercomSettingsV1","description":"Schema for a Shop.IntercomSetting object.\n\nLike the other helpdesk integrations, Intercom carries only status plus the\nrouting values it needs and does not participate in the shipment-event\nnotification pipeline. Tickets are created via the Intercom Tickets API\n(v2.15); claim images are attached as URLs and the affidavit PDF is sent\nbase64-encoded, both on a contact-authored reply."},"IntercomTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"region":{"$ref":"#/components/schemas/IntercomRegion","description":"Intercom workspace data region (us, eu, au)","default":"us"},"ticket_type_id":{"type":"string","title":"Ticket Type Id","description":"Intercom ticket type id for new claim tickets","default":""},"admin_assignee_id":{"type":"string","nullable":true,"title":"Admin Assignee Id","description":"Admin id to assign new tickets to"},"team_assignee_id":{"type":"string","nullable":true,"title":"Team Assignee Id","description":"Team id to assign new tickets to"},"tag_admin_id":{"type":"string","nullable":true,"title":"Tag Admin Id","description":"Admin id used when attaching template tags"},"skip_notifications":{"type":"boolean","title":"Skip Notifications","description":"Whether Intercom should skip customer notifications","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"IntercomTriggerSettingsDTO","description":"Intercom-specific trigger settings for public API.\n\nIntercom Tickets API (v2.15) is configured with a ticket type id, optional\nassignment targets, and an optional admin for tag attachment. Claim images\nare attached as URLs on a contact-authored reply; the affidavit PDF rides\nthe same reply base64-encoded."},"IntercomTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"region":{"$ref":"#/components/schemas/IntercomRegion","description":"Intercom workspace data region (us, eu, au)","default":"us"},"ticket_type_id":{"type":"string","title":"Ticket Type Id","description":"Intercom ticket type id for new claim tickets","default":""},"admin_assignee_id":{"type":"string","nullable":true,"title":"Admin Assignee Id","description":"Admin id to assign new tickets to"},"team_assignee_id":{"type":"string","nullable":true,"title":"Team Assignee Id","description":"Team id to assign new tickets to"},"tag_admin_id":{"type":"string","nullable":true,"title":"Tag Admin Id","description":"Admin id used when attaching template tags"},"skip_notifications":{"type":"boolean","title":"Skip Notifications","description":"Whether Intercom should skip customer notifications","default":false},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"IntercomTriggerSettingsDTO","description":"Intercom-specific trigger settings for public API.\n\nIntercom Tickets API (v2.15) is configured with a ticket type id, optional\nassignment targets, and an optional admin for tag attachment. Claim images\nare attached as URLs on a contact-authored reply; the affidavit PDF rides\nthe same reply base64-encoded."},"IntercomTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"region":{"$ref":"#/components/schemas/IntercomRegion","nullable":true,"description":"Intercom workspace data region (us, eu, au); absent → unchanged"},"ticket_type_id":{"type":"string","nullable":true,"title":"Ticket Type Id","description":"Intercom ticket type id; absent → unchanged"},"admin_assignee_id":{"type":"string","nullable":true,"title":"Admin Assignee Id","description":"Admin id to assign new tickets to; absent → unchanged"},"team_assignee_id":{"type":"string","nullable":true,"title":"Team Assignee Id","description":"Team id to assign new tickets to; absent → unchanged"},"tag_admin_id":{"type":"string","nullable":true,"title":"Tag Admin Id","description":"Admin id for tag attachment; absent → unchanged"},"skip_notifications":{"type":"boolean","nullable":true,"title":"Skip Notifications","description":"Skip customer notifications; absent → unchanged"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"IntercomTriggerSettingsUpdateDTO","description":"Intercom-specific trigger settings update for public API."},"InternalShopSettingsDTO-Input":{"properties":{"triggers":{"$ref":"#/components/schemas/BaseTriggerSettings-Input","nullable":true,"description":"Trigger Settings"},"carriers":{"$ref":"#/components/schemas/BaseCarrierSettings-Input","nullable":true,"description":"Carrier Settings"},"trackpages":{"$ref":"#/components/schemas/BaseTrackpagesSettings-Input","nullable":true,"description":"Trackpages Settings"},"campaigns":{"$ref":"#/components/schemas/BaseCampaignSettings-Input","nullable":true,"description":"Campaign Settings"},"brand_palette":{"$ref":"#/components/schemas/BaseBrandPaletteSettings-Input","description":"Brand Palette Settings"},"mappings":{"$ref":"#/components/schemas/BaseMappingsSettings-Input","nullable":true,"description":"Mappings Settings"},"returns":{"$ref":"#/components/schemas/BaseReturnsSettings-Input","nullable":true,"description":"Returns Settings"},"email_notifications":{"$ref":"#/components/schemas/BaseEmailNotificationsSettings-Input","nullable":true,"description":"Email Notifications Settings (super-admin managed)"}},"type":"object","required":["triggers","carriers","trackpages","campaigns","brand_palette"],"title":"InternalShopSettingsDTO","description":"The Shop settings object to be exchanged with the HTTP clients (privately)."},"InternalShopSettingsDTO-Output":{"properties":{"triggers":{"$ref":"#/components/schemas/BaseTriggerSettings-Output","nullable":true,"description":"Trigger Settings"},"carriers":{"$ref":"#/components/schemas/BaseCarrierSettings-Output","nullable":true,"description":"Carrier Settings"},"trackpages":{"$ref":"#/components/schemas/BaseTrackpagesSettings-Output","nullable":true,"description":"Trackpages Settings"},"campaigns":{"$ref":"#/components/schemas/BaseCampaignSettings-Output","nullable":true,"description":"Campaign Settings"},"brand_palette":{"$ref":"#/components/schemas/BaseBrandPaletteSettings-Output","description":"Brand Palette Settings"},"mappings":{"$ref":"#/components/schemas/BaseMappingsSettings-Output","nullable":true,"description":"Mappings Settings"},"returns":{"$ref":"#/components/schemas/BaseReturnsSettings-Output","nullable":true,"description":"Returns Settings"},"email_notifications":{"$ref":"#/components/schemas/BaseEmailNotificationsSettings-Output","nullable":true,"description":"Email Notifications Settings (super-admin managed)"}},"type":"object","required":["triggers","carriers","trackpages","campaigns","brand_palette"],"title":"InternalShopSettingsDTO","description":"The Shop settings object to be exchanged with the HTTP clients (privately)."},"InternalTrigger-Input":{"properties":{"id":{"type":"string","title":"Id","description":"ID of the trigger"},"name":{"type":"string","title":"Name","description":"Name of the trigger"},"phase_in":{"items":{"$ref":"#/components/schemas/PhaseEnum"},"type":"array","title":"Phase In","description":"List of phases to trigger on","default":[]},"phase_not_in":{"items":{"$ref":"#/components/schemas/PhaseEnum"},"type":"array","title":"Phase Not In","description":"List of phases to not trigger on","default":[]},"event_key_in":{"items":{"type":"string"},"type":"array","title":"Event Key In","description":"List of event keys to trigger on","default":[]},"event_key_not_in":{"items":{"type":"string"},"type":"array","title":"Event Key Not In","description":"List of event keys to not trigger on","default":[]},"operator":{"$ref":"#/components/schemas/Operator","description":"The operator to use for the event key"},"time_threshold_type":{"$ref":"#/components/schemas/ThresholdType","description":"The key to use for the time threshold"},"time_threshold_value":{"type":"integer","title":"Time Threshold Value","description":"The time in hours to wait before triggering"},"shipment_direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"The shipment direction to trigger on","default":"merchant_customer"}},"type":"object","required":["id","name","operator","time_threshold_type","time_threshold_value"],"title":"InternalTrigger","description":"Internal Triggers Schema."},"InternalTrigger-Output":{"properties":{"id":{"title":"Id","description":"ID of the trigger"},"name":{"title":"Name","description":"Name of the trigger"},"phase_in":{"title":"Phase In","description":"List of phases to trigger on"},"phase_not_in":{"title":"Phase Not In","description":"List of phases to not trigger on"},"event_key_in":{"title":"Event Key In","description":"List of event keys to trigger on"},"event_key_not_in":{"title":"Event Key Not In","description":"List of event keys to not trigger on"},"operator":{"description":"The operator to use for the event key"},"time_threshold_type":{"description":"The key to use for the time threshold"},"time_threshold_value":{"title":"Time Threshold Value","description":"The time in hours to wait before triggering"},"shipment_direction":{"description":"The shipment direction to trigger on"}},"type":"object","required":["id","name","operator","time_threshold_type","time_threshold_value"],"title":"InternalTrigger","description":"Internal Triggers Schema."},"InternalTriggerCreationDTO":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the trigger"},"phase_in":{"items":{"$ref":"#/components/schemas/PhaseEnum"},"type":"array","title":"Phase In","description":"List of phases to trigger on","default":[]},"phase_not_in":{"items":{"$ref":"#/components/schemas/PhaseEnum"},"type":"array","title":"Phase Not In","description":"List of phases to not trigger on","default":[]},"event_key_in":{"items":{"type":"string"},"type":"array","title":"Event Key In","description":"List of event keys to trigger on","default":[]},"event_key_not_in":{"items":{"type":"string"},"type":"array","title":"Event Key Not In","description":"List of event keys to not trigger on","default":[]},"operator":{"$ref":"#/components/schemas/Operator","description":"The operator to use for the event key"},"time_threshold_type":{"$ref":"#/components/schemas/ThresholdType","description":"The key to use for the time threshold"},"time_threshold_value":{"type":"integer","title":"Time Threshold Value","description":"The time in hours to wait before triggering"},"shipment_direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"The shipment direction to trigger on","default":"merchant_customer"}},"type":"object","required":["name","operator","time_threshold_type","time_threshold_value"],"title":"InternalTriggerCreationDTO","description":"The Internal Trigger creation object to be exchanged with the HTTP clients."},"InxmailSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"instance_id":{"type":"string","title":"Instance Id","description":"Inxmail instance identifier (e.g., 'joe-nimble')","default":""}},"type":"object","title":"InxmailSettingsV1","description":"Schema for a Shop.InxmailSetting object."},"InxmailTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"instance_id":{"type":"string","title":"Instance Id","description":"Inxmail instance identifier","default":""}},"type":"object","required":["status"],"title":"InxmailTriggerSettingsDTO","description":"Inxmail-specific trigger settings for public API."},"InxmailTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"instance_id":{"type":"string","title":"Instance Id","description":"Inxmail instance identifier","default":""}},"type":"object","required":["status"],"title":"InxmailTriggerSettingsDTO","description":"Inxmail-specific trigger settings for public API."},"InxmailTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"},"instance_id":{"type":"string","nullable":true,"title":"Instance Id","description":"Inxmail instance identifier"}},"type":"object","title":"InxmailTriggerSettingsUpdateDTO","description":"Inxmail-specific trigger settings update for public API."},"KarlaApiKeyCreationDTO":{"properties":{"username":{"type":"string","title":"Username","description":"The user who will hold the key"},"shops":{"items":{"$ref":"#/components/schemas/ShopRole"},"type":"array","title":"Shops","description":"Shops and their roles that the token will have access to","default":[]}},"type":"object","required":["username"],"title":"KarlaApiKeyCreationDTO","description":"A client id and client key secret."},"KlaviyoOAuthAuthorizeDTO":{"properties":{"authorize_url":{"type":"string","title":"Authorize Url","description":"The Klaviyo OAuth consent URL to redirect the merchant to."}},"type":"object","required":["authorize_url"],"title":"KlaviyoOAuthAuthorizeDTO","description":"Response carrying the Klaviyo consent URL to redirect the merchant to."},"KlaviyoOAuthStatusDTO":{"properties":{"connected":{"type":"boolean","title":"Connected","description":"Whether OAuth tokens exist for the shop in Secret Manager"},"working":{"type":"boolean","title":"Working","description":"Whether a live authenticated Klaviyo call succeeded. This is the field to branch on for a healthy/unhealthy badge."},"reason":{"$ref":"#/components/schemas/KlaviyoOAuthStatusReason","nullable":true,"description":"Extra detail about the check result; null when fully working"}},"type":"object","required":["connected","working"],"title":"KlaviyoOAuthStatusDTO","description":"Whether a shop's Klaviyo OAuth connection exists and actually works."},"KlaviyoOAuthStatusReason":{"type":"string","enum":["not_connected","refresh_failed","unauthorized","rate_limited","klaviyo_unreachable","klaviyo_error"],"title":"KlaviyoOAuthStatusReason","description":"Extra detail accompanying a Klaviyo OAuth status check."},"KlaviyoSettingsV1-Input":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"shipment_group_key":{"$ref":"#/components/schemas/ShipmentGroupKey","description":"The key to use for the shipment group","default":"shipment_id"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers","default":[]},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"trackpage_retargeting":{"type":"boolean","title":"Trackpage Retargeting","description":"Whether to send a karla_tracking_page_opened event to Klaviyo when a customer opens the tracking page for their order","default":false},"upsell_click_retargeting":{"type":"boolean","title":"Upsell Click Retargeting","description":"Whether to send a karla_upsell_product_clicked event to Klaviyo when a customer clicks a product recommendation on the tracking page. Sent once per order, carrying the clicked product","default":false}},"type":"object","title":"KlaviyoSettingsV1","description":"Schema for a Shop.KlaviyoSetting object.\n\nInherits all fields from BaseIntegrationSettingsV1 and adds the\nper-metric tracking-page retargeting opt-ins."},"KlaviyoSettingsV1-Output":{"properties":{"status":{"description":"Whether the integration is enabled"},"trigger_delivered_all_events":{"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"shipment_group_key":{"description":"The key to use for the shipment group"},"stale_event_threshold":{"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"internal_triggers":{"title":"Internal Triggers","description":"Internal triggers"},"segments_enabled":{"title":"Segments Enabled","description":"Whether to fetch segments"},"trackpage_retargeting":{"title":"Trackpage Retargeting","description":"Whether to send a karla_tracking_page_opened event to Klaviyo when a customer opens the tracking page for their order"},"upsell_click_retargeting":{"title":"Upsell Click Retargeting","description":"Whether to send a karla_upsell_product_clicked event to Klaviyo when a customer clicks a product recommendation on the tracking page. Sent once per order, carrying the clicked product"}},"type":"object","title":"KlaviyoSettingsV1","description":"Schema for a Shop.KlaviyoSetting object.\n\nInherits all fields from BaseIntegrationSettingsV1 and adds the\nper-metric tracking-page retargeting opt-ins."},"KlaviyoTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Input"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"trackpage_retargeting":{"type":"boolean","title":"Trackpage Retargeting","description":"Whether to send a karla_tracking_page_opened event to Klaviyo when a customer opens the tracking page for their order","default":false},"upsell_click_retargeting":{"type":"boolean","title":"Upsell Click Retargeting","description":"Whether to send a karla_upsell_product_clicked event to Klaviyo when a customer clicks a product recommendation on the tracking page. Sent once per order, carrying the clicked product","default":false}},"type":"object","required":["status"],"title":"KlaviyoTriggerSettingsDTO","description":"Klaviyo-specific trigger settings for public API."},"KlaviyoTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","title":"Trigger Delivered All Events","description":"Whether to trigger all events","default":true},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":4},"segments_enabled":{"type":"boolean","title":"Segments Enabled","description":"Whether to fetch segments","default":true},"internal_triggers":{"items":{"$ref":"#/components/schemas/InternalTrigger-Output"},"type":"array","title":"Internal Triggers","description":"Internal triggers for this integration (read-only, use dedicated endpoints for CRUD operations)","default":[]},"trackpage_retargeting":{"type":"boolean","title":"Trackpage Retargeting","description":"Whether to send a karla_tracking_page_opened event to Klaviyo when a customer opens the tracking page for their order","default":false},"upsell_click_retargeting":{"type":"boolean","title":"Upsell Click Retargeting","description":"Whether to send a karla_upsell_product_clicked event to Klaviyo when a customer clicks a product recommendation on the tracking page. Sent once per order, carrying the clicked product","default":false}},"type":"object","required":["status"],"title":"KlaviyoTriggerSettingsDTO","description":"Klaviyo-specific trigger settings for public API."},"KlaviyoTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Toggle integration","examples":[true]},"trigger_delivered_all_events":{"type":"boolean","nullable":true,"title":"Trigger Delivered All Events","description":"Whether to trigger all events"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"},"segments_enabled":{"type":"boolean","nullable":true,"title":"Segments Enabled","description":"Whether to fetch segments"},"trackpage_retargeting":{"type":"boolean","nullable":true,"title":"Trackpage Retargeting","description":"Whether to send a karla_tracking_page_opened event to Klaviyo when a customer opens the tracking page for their order"},"upsell_click_retargeting":{"type":"boolean","nullable":true,"title":"Upsell Click Retargeting","description":"Whether to send a karla_upsell_product_clicked event to Klaviyo when a customer clicks a product recommendation on the tracking page. Sent once per order, carrying the clicked product"}},"type":"object","title":"KlaviyoTriggerSettingsUpdateDTO","description":"Klaviyo-specific trigger settings update for public API."},"LanguageEnum":{"type":"string","enum":["cs","da","nl","en","fi","fr","de","el","hu","it","lv","pl","pt","sk","es","sv"],"title":"LanguageEnum","description":"Supported languages."},"MappingAggregatesDTO":{"properties":{"pending":{"type":"integer","title":"Pending","description":"Total pending mappings"},"approved":{"type":"integer","title":"Approved","description":"Total approved mappings"},"rejected":{"type":"integer","title":"Rejected","description":"Total rejected mappings"}},"type":"object","required":["pending","approved","rejected"],"title":"MappingAggregatesDTO","description":"Global status counts (unfiltered, unpaginated)."},"MappingDetailResponseDTO-Input":{"properties":{"mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","description":"The mapping details"},"suggestions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Suggestions","description":"List of AI suggestions for this mapping. DEPRECATED: Now in BigQuery."}},"type":"object","required":["mapping"],"title":"MappingDetailResponseDTO","description":"Response DTO for getting a single mapping with all related suggestions."},"MappingDetailResponseDTO-Output":{"properties":{"mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","description":"The mapping details"},"suggestions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Suggestions","description":"List of AI suggestions for this mapping. DEPRECATED: Now in BigQuery."}},"type":"object","required":["mapping"],"title":"MappingDetailResponseDTO","description":"Response DTO for getting a single mapping with all related suggestions."},"MappingOperationResponseDTO-Input":{"properties":{"mapping_id":{"type":"integer","title":"Mapping Id","description":"Mapping ID"},"event_key":{"type":"string","nullable":true,"title":"Event Key","description":"Mapped event key"},"status":{"type":"string","title":"Status","description":"Mapping status"},"response_message":{"type":"string","title":"Response Message","description":"Human-readable description of the operation result"},"requires_confirmation":{"type":"boolean","title":"Requires Confirmation","description":"If true, user confirmation is required before proceeding. Check mappings_to_delete to see what will be deleted.","default":false},"current_mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","nullable":true,"description":"The mapping being modified (preview mode only). Shows the new state with updated regex pattern."},"examples_to_remove":{"items":{"$ref":"#/components/schemas/ExampleWithGroups"},"type":"array","title":"Examples To Remove","description":"Examples that will be removed because they no longer match the new regex pattern. Includes matched_groups showing what the old pattern captured."},"examples_to_keep":{"items":{"$ref":"#/components/schemas/ExampleWithGroups"},"type":"array","title":"Examples To Keep","description":"Examples that will be kept because they match the new regex pattern. Includes matched_groups showing what the new pattern captures."},"mappings_to_delete":{"items":{"$ref":"#/components/schemas/AfterShipEventMappingDTO"},"type":"array","title":"Mappings To Delete","description":"Mappings that will be deleted by this operation. Only populated when requires_confirmation=true."}},"type":"object","required":["mapping_id","status","response_message"],"title":"MappingOperationResponseDTO","description":"Response DTO for mapping approval/rejection operations."},"MappingOperationResponseDTO-Output":{"properties":{"mapping_id":{"type":"integer","title":"Mapping Id","description":"Mapping ID"},"event_key":{"type":"string","nullable":true,"title":"Event Key","description":"Mapped event key"},"status":{"type":"string","title":"Status","description":"Mapping status"},"response_message":{"type":"string","title":"Response Message","description":"Human-readable description of the operation result"},"requires_confirmation":{"type":"boolean","title":"Requires Confirmation","description":"If true, user confirmation is required before proceeding. Check mappings_to_delete to see what will be deleted.","default":false},"current_mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","nullable":true,"description":"The mapping being modified (preview mode only). Shows the new state with updated regex pattern."},"examples_to_remove":{"items":{"$ref":"#/components/schemas/ExampleWithGroups"},"type":"array","title":"Examples To Remove","description":"Examples that will be removed because they no longer match the new regex pattern. Includes matched_groups showing what the old pattern captured."},"examples_to_keep":{"items":{"$ref":"#/components/schemas/ExampleWithGroups"},"type":"array","title":"Examples To Keep","description":"Examples that will be kept because they match the new regex pattern. Includes matched_groups showing what the new pattern captures."},"mappings_to_delete":{"items":{"$ref":"#/components/schemas/AfterShipEventMappingDTO"},"type":"array","title":"Mappings To Delete","description":"Mappings that will be deleted by this operation. Only populated when requires_confirmation=true."}},"type":"object","required":["mapping_id","status","response_message"],"title":"MappingOperationResponseDTO","description":"Response DTO for mapping approval/rejection operations."},"MappingRule":{"properties":{"source":{"$ref":"#/components/schemas/MappingSource-Input","description":"Where to read the value from"},"target":{"$ref":"#/components/schemas/MappingTarget","description":"Karla-standard field to map to"}},"type":"object","required":["source","target"],"title":"MappingRule","description":"A single mapping rule: source -> target.\n\nExamples::\n\n    # Map a note attribute to a tracking number\n    {\"source\": {\"type\": \"note_attribute\", \"key\": \"rma_tracking\"},\n     \"target\": \"return_tracking_number\"}\n\n    # Extract tracking from order note via regex\n    {\"source\": {\"type\": \"note\", \"pattern\": \"Return tracking codes:\\s*(\\S+)\"},\n     \"target\": \"return_tracking_number\"}\n\n    # Map note attribute to carrier\n    {\"source\": {\"type\": \"note_attribute\", \"key\": \"carrier_ref\"},\n     \"target\": \"return_carrier_reference\"}\n\n    # Map a metafield to a tracking number (any namespace is allowed)\n    {\"source\": {\"type\": \"metafield\", \"namespace\": \"custom\",\n                \"key\": \"return_tracking_number\"},\n     \"target\": \"return_tracking_number\"}"},"MappingSource-Input":{"properties":{"type":{"$ref":"#/components/schemas/MappingSourceType","description":"Source type: 'note_attribute' to match by key, 'note' to extract via regex, 'metafield' to match by namespace + key."},"key":{"type":"string","minLength":1,"nullable":true,"title":"Key","description":"Note attribute or metafield key name to match. Required for note_attribute and metafield, not allowed for note. Example: 'Zalando Kundennummer' or 'return_tracking_number'"},"namespace":{"type":"string","maxLength":20,"minLength":1,"pattern":"^[a-zA-Z0-9_][a-zA-Z0-9_-]*$","nullable":true,"title":"Namespace","description":"Metafield namespace. Required for metafield source type. Must match Shopify's format: alphanumeric + underscore/hyphen, no leading hyphen, max 20 chars. The webhook subscription is dynamically updated to include all namespaces referenced by configured rules. Not allowed for other source types."},"pattern":{"type":"string","maxLength":500,"minLength":1,"nullable":true,"title":"Pattern","description":"Regex pattern with at least one capture group. Required for note, not allowed for note_attribute. The first match in the note text is used. Example: 'Return tracking codes:\\s*(\\S+)'"},"group":{"type":"integer","minimum":1.0,"title":"Group","description":"Which capture group to extract (1-indexed). Only used with note source type. Example: pattern '(carrier):\\s*(\\S+)' with group=2 extracts the value after 'carrier:'.","default":1}},"type":"object","required":["type"],"title":"MappingSource","description":"Source field definition for a mapping rule.\n\nThree source types are supported:\n\n**note_attribute** — extracts a value from Shopify order note_attributes\nby matching on the attribute name (key).\n\nExample: ``{\"type\": \"note_attribute\", \"key\": \"Zalando Kundennummer\"}``\nextracts the value of the note attribute named \"Zalando Kundennummer\".\n\n**note** — extracts a value from the Shopify order note (free-text)\nusing a regex pattern with capture groups. The first match is used.\n\nExample: ``{\"type\": \"note\", \"pattern\": \"Return tracking codes:\\s*(\\S+)\"}``\nextracts ``00341234567530088154`` from a note containing\n``\"Return tracking codes: 00341234567530088154\"``.\n\n**metafield** — extracts a value from a Shopify order metafield by\nnamespace + key. The webhook subscription is dynamically updated to\ninclude every namespace referenced by configured rules (the ``karla``\nnamespace is always included for internal use).\n\nExample: ``{\"type\": \"metafield\", \"namespace\": \"custom\",\n\"key\": \"return_tracking_number\"}`` extracts the value of the\n``custom.return_tracking_number`` metafield.\n\nFor the **note** source type, most standard regex features are supported,\nincluding:\n``\\d``, ``\\s``, ``\\S``, ``\\w``, ``\\b``, ``[a-z]``,\n``a+``, ``a*``, ``a?``, ``a{2,5}``, ``(?:...)``, ``(?P<name>...)``,\n``(?i)`` (case-insensitive flag)."},"MappingSource-Output":{"properties":{"type":{"description":"Source type: 'note_attribute' to match by key, 'note' to extract via regex, 'metafield' to match by namespace + key."},"key":{"title":"Key","description":"Note attribute or metafield key name to match. Required for note_attribute and metafield, not allowed for note. Example: 'Zalando Kundennummer' or 'return_tracking_number'"},"namespace":{"title":"Namespace","description":"Metafield namespace. Required for metafield source type. Must match Shopify's format: alphanumeric + underscore/hyphen, no leading hyphen, max 20 chars. The webhook subscription is dynamically updated to include all namespaces referenced by configured rules. Not allowed for other source types."},"pattern":{"title":"Pattern","description":"Regex pattern with at least one capture group. Required for note, not allowed for note_attribute. The first match in the note text is used. Example: 'Return tracking codes:\\s*(\\S+)'"},"group":{"title":"Group","description":"Which capture group to extract (1-indexed). Only used with note source type. Example: pattern '(carrier):\\s*(\\S+)' with group=2 extracts the value after 'carrier:'."}},"type":"object","required":["type"],"title":"MappingSource","description":"Source field definition for a mapping rule.\n\nThree source types are supported:\n\n**note_attribute** — extracts a value from Shopify order note_attributes\nby matching on the attribute name (key).\n\nExample: ``{\"type\": \"note_attribute\", \"key\": \"Zalando Kundennummer\"}``\nextracts the value of the note attribute named \"Zalando Kundennummer\".\n\n**note** — extracts a value from the Shopify order note (free-text)\nusing a regex pattern with capture groups. The first match is used.\n\nExample: ``{\"type\": \"note\", \"pattern\": \"Return tracking codes:\\s*(\\S+)\"}``\nextracts ``00341234567530088154`` from a note containing\n``\"Return tracking codes: 00341234567530088154\"``.\n\n**metafield** — extracts a value from a Shopify order metafield by\nnamespace + key. The webhook subscription is dynamically updated to\ninclude every namespace referenced by configured rules (the ``karla``\nnamespace is always included for internal use).\n\nExample: ``{\"type\": \"metafield\", \"namespace\": \"custom\",\n\"key\": \"return_tracking_number\"}`` extracts the value of the\n``custom.return_tracking_number`` metafield.\n\nFor the **note** source type, most standard regex features are supported,\nincluding:\n``\\d``, ``\\s``, ``\\S``, ``\\w``, ``\\b``, ``[a-z]``,\n``a+``, ``a*``, ``a?``, ``a{2,5}``, ``(?:...)``, ``(?P<name>...)``,\n``(?i)`` (case-insensitive flag)."},"MappingSourceType":{"type":"string","enum":["note_attribute","note","metafield"],"title":"MappingSourceType","description":"Valid source types for mapping rules.\n\n- note_attribute: Extract value from a Shopify note_attribute by key.\n- note: Extract value from the Shopify order note using a regex pattern.\n- metafield: Extract value from a Shopify order metafield by namespace\n  and key. The Shopify webhook subscription is dynamically updated to\n  include every namespace referenced by configured rules."},"MappingStatus":{"type":"string","enum":["pending","approved","rejected"],"title":"MappingStatus","description":"Approval status for AfterShip event mappings.\n\nWorkflow:\n- PENDING: Newly created mapping awaiting approval\n- APPROVED: Mapping has been reviewed and approved by admin\n- REJECTED: Mapping has been rejected and should not be used"},"MappingTarget":{"type":"string","enum":["return_tracking_number","return_carrier_reference","marketplace_order_number","estimated_ship_dates"],"title":"MappingTarget","description":"Valid target fields for mapping rules."},"MappingWithSuggestionDTO-Input":{"properties":{"mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","description":"The mapping details"},"top_suggestion":{"additionalProperties":true,"type":"object","nullable":true,"title":"Top Suggestion","description":"Top AI suggestion for this mapping (highest confidence, pending). DEPRECATED: Now in BigQuery."}},"type":"object","required":["mapping"],"title":"MappingWithSuggestionDTO","description":"DTO for a mapping with its top AI suggestion."},"MappingWithSuggestionDTO-Output":{"properties":{"mapping":{"$ref":"#/components/schemas/AfterShipEventMappingDTO","description":"The mapping details"},"top_suggestion":{"additionalProperties":true,"type":"object","nullable":true,"title":"Top Suggestion","description":"Top AI suggestion for this mapping (highest confidence, pending). DEPRECATED: Now in BigQuery."}},"type":"object","required":["mapping"],"title":"MappingWithSuggestionDTO","description":"DTO for a mapping with its top AI suggestion."},"MappingsListResponseDTO-Input":{"properties":{"mappings":{"items":{"$ref":"#/components/schemas/MappingWithSuggestionDTO-Input"},"type":"array","title":"Mappings","description":"List of event mappings with their top suggestions"},"total":{"type":"integer","title":"Total","description":"Total number of mappings matching filters"},"page":{"type":"integer","title":"Page","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages"},"aggregates":{"$ref":"#/components/schemas/MappingAggregatesDTO","description":"Global status counts (no filters/pagination applied)"}},"type":"object","required":["mappings","total","page","page_size","total_pages","aggregates"],"title":"MappingsListResponseDTO","description":"Response DTO for paginated list of all mappings."},"MappingsListResponseDTO-Output":{"properties":{"mappings":{"items":{"$ref":"#/components/schemas/MappingWithSuggestionDTO-Output"},"type":"array","title":"Mappings","description":"List of event mappings with their top suggestions"},"total":{"type":"integer","title":"Total","description":"Total number of mappings matching filters"},"page":{"type":"integer","title":"Page","description":"Current page number"},"page_size":{"type":"integer","title":"Page Size","description":"Number of items per page"},"total_pages":{"type":"integer","title":"Total Pages","description":"Total number of pages"},"aggregates":{"$ref":"#/components/schemas/MappingAggregatesDTO","description":"Global status counts (no filters/pagination applied)"}},"type":"object","required":["mappings","total","page","page_size","total_pages","aggregates"],"title":"MappingsListResponseDTO","description":"Response DTO for paginated list of all mappings."},"MappingsV1":{"properties":{"shopify.order":{"items":{"$ref":"#/components/schemas/MappingRule"},"type":"array","title":"Shopify.Order","description":"Mapping rules for Shopify order context"}},"type":"object","title":"MappingsV1","description":"Mapping rules grouped by context scope.","examples":[{"shopify.order":[{"source":{"key":"Zalando Kundennummer","type":"note_attribute"},"target":"marketplace_order_number"}]},{"shopify.order":[{"source":{"key":"_karla_estimated_ship_dates","type":"note_attribute"},"target":"estimated_ship_dates"}]},{"shopify.order":[{"source":{"key":"return_tracking_number","namespace":"custom","type":"metafield"},"target":"return_tracking_number"}]}]},"MatchType":{"type":"string","enum":["full","partial","regex"],"title":"MatchType","description":"Match type for AfterShip event mappings.\n\nDetermines how events are matched to mappings:\n- FULL: Exact match on tag + subtag + subtag_message + message (default)\n- PARTIAL: Match on tag + subtag + subtag_message only (message=NULL)\n- REGEX: Match on tag + subtag + subtag_message + regex pattern on message\n\nNote: FULL is the default since we always receive a message from AfterShip.\nTo create a PARTIAL mapping, explicitly set message=NULL in the UI."},"MockNotificationRequest":{"properties":{"journey":{"type":"string","title":"Journey","description":"Journey: in_transit, out_for_delivery, damaged, or delivered"}},"type":"object","required":["journey"],"title":"MockNotificationRequest","description":"Request body for mock notification endpoint."},"NotificationBannerWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"content":{"type":"string","nullable":true,"title":"Content","description":"Banner content text"},"link":{"type":"string","nullable":true,"title":"Link","description":"Link URL for the banner"},"cta_text":{"type":"string","nullable":true,"title":"Cta Text","description":"Call-to-action button text"}},"type":"object","title":"NotificationBannerWidgetDTO","description":"Configuration for the notification-banner widget."},"NotificationEventGroup":{"type":"string","enum":["claim_created","claim_updated","shipment_order_placed","shipment_pre_transit","shipment_in_transit","shipment_damaged","shipment_carrier_delay","shipment_out_for_delivery","shipment_delivery_failed","shipment_delivery_failed_forwarded_to_parcel_shop","shipment_delivery_failed_address_issue","shipment_delivery_second_attempt","shipment_delivered","shipment_delivered_to_neighbour","shipment_delivered_to_letterbox","shipment_delivered_to_parcel_shop","shipment_delivered_to_parcel_locker","shipment_picked_up","shipment_failed_returned","shipment_refused_then_returned","shipment_not_picked_up_then_returned","shipment_delayed_due_to_customer_request","shipment_delivered_all_events","shipment_internal_trigger","shipment_carrier_changed","shipment_order_cancelled","shipment_eta_updated","return_shipment_in_transit","return_shipment_out_for_delivery","return_shipment_carrier_delay","return_shipment_delivery_failed","return_shipment_delivered"],"title":"NotificationEventGroup","description":"Unified event group enum for all notification types."},"NotificationThirdParty":{"type":"string","enum":["automation","braze","brevo","email","emarsys","hubspot","inxmail","klaviyo","shopify","webhook"],"title":"NotificationThirdParty","description":"Supported third-party services for sending notifications."},"ObfuscatedKarlaTokenDTO-Input":{"properties":{"id":{"type":"string","title":"Id","description":"Unique token identifier"},"secret":{"type":"string","title":"Secret","description":"Obfuscated API key (e.g. sk_abcd...wxyz)"},"shops":{"items":{"$ref":"#/components/schemas/ShopRole"},"type":"array","title":"Shops","description":"Shops the token has access to"},"expiration":{"type":"integer","title":"Expiration","description":"Expiration time in Unix epoch (0 = never)"}},"type":"object","required":["id","secret","shops","expiration"],"title":"ObfuscatedKarlaTokenDTO","description":"A Karla API token with its secret obfuscated for display."},"ObfuscatedKarlaTokenDTO-Output":{"properties":{"id":{"type":"string","title":"Id","description":"Unique token identifier"},"secret":{"type":"string","title":"Secret","description":"Obfuscated API key (e.g. sk_abcd...wxyz)"},"shops":{"items":{"$ref":"#/components/schemas/ShopRole"},"type":"array","title":"Shops","description":"Shops the token has access to"},"expiration":{"type":"integer","title":"Expiration","description":"Expiration time in Unix epoch (0 = never)"}},"type":"object","required":["id","secret","shops","expiration"],"title":"ObfuscatedKarlaTokenDTO","description":"A Karla API token with its secret obfuscated for display."},"Operator":{"type":"string","enum":["AND","OR"],"title":"Operator","description":"Enum for the operator."},"OrderAnalyticsDTO":{"properties":{"source":{"type":"string","maxLength":100,"title":"Source","description":"Traffic source identifier","default":"trackpages","examples":["trackpages"]},"campaign":{"type":"string","maxLength":100,"nullable":true,"title":"Campaign","description":"Campaign identifier (typically a UUID)"},"medium":{"type":"string","maxLength":100,"nullable":true,"title":"Medium","description":"Marketing medium (e.g., basic_promotion, product_promotion)"},"landing_url":{"type":"string","maxLength":2048,"nullable":true,"title":"Landing Url","description":"Full landing URL including query parameters"},"landing_path":{"type":"string","maxLength":500,"nullable":true,"title":"Landing Path","description":"Landing page path without domain"},"referrer":{"type":"string","maxLength":2048,"nullable":true,"title":"Referrer","description":"Referrer URL"},"captured_at":{"type":"string","format":"date-time","nullable":true,"title":"Captured At","description":"Timestamp when the tracking data was captured"},"reference_order_id":{"type":"string","maxLength":255,"nullable":true,"title":"Reference Order Id","description":"Reference to an original or parent order (e.g., for linking upsell orders to their source order)","examples":["11334422","550e8400-e29b-41d4-a716-446655440000"]},"order_external_id":{"type":"string","maxLength":255,"nullable":true,"title":"Order External Id","description":"External ID of the source order that drove this conversion","examples":["5123456789","gid://shopify/Order/5123456789"]},"order_number":{"type":"string","maxLength":100,"nullable":true,"title":"Order Number","description":"Order number of the source order that drove this conversion","examples":["1234","56789"]},"order_name":{"type":"string","maxLength":255,"nullable":true,"title":"Order Name","description":"Display name of the source order that drove this conversion","examples":["#1234","#IXF56789"]},"id":{"type":"string","title":"Id","description":"Order reference whose type is defined by the id_type field","examples":["11334422","550e8400-e29b-41d4-a716-446655440000"]},"id_type":{"$ref":"#/components/schemas/OrderReferenceType","description":"Type of order identifier passed in the id field","default":"order_number"}},"type":"object","required":["id"],"title":"OrderAnalyticsDTO","description":"Payload for upserting Karla tracking analytics on an order using PUT semantics.\n\nAll Karla tracking fields (source, campaign, medium, landing_url, landing_path,\nreferrer, captured_at, reference_order_id, order_external_id, order_number,\norder_name) will be overwritten, including with None/null values.\nThis allows clearing attribution data by sending null values."},"OrderAnalyticsResponseDTO":{"properties":{"source":{"type":"string","maxLength":100,"nullable":true,"title":"Source","description":"Traffic source identifier"},"campaign":{"type":"string","maxLength":100,"nullable":true,"title":"Campaign","description":"Campaign identifier (typically a UUID)"},"medium":{"type":"string","maxLength":100,"nullable":true,"title":"Medium","description":"Marketing medium (e.g., basic_promotion, product_promotion)"},"landing_url":{"type":"string","maxLength":2048,"nullable":true,"title":"Landing Url","description":"Full landing URL including query parameters"},"landing_path":{"type":"string","maxLength":500,"nullable":true,"title":"Landing Path","description":"Landing page path without domain"},"referrer":{"type":"string","maxLength":2048,"nullable":true,"title":"Referrer","description":"Referrer URL"},"captured_at":{"type":"string","format":"date-time","nullable":true,"title":"Captured At","description":"Timestamp when the tracking data was captured"},"reference_order_id":{"type":"string","maxLength":255,"nullable":true,"title":"Reference Order Id","description":"Reference to an original or parent order (e.g., for linking upsell orders to their source order)","examples":["11334422","550e8400-e29b-41d4-a716-446655440000"]},"order_external_id":{"type":"string","maxLength":255,"nullable":true,"title":"Order External Id","description":"External ID of the source order that drove this conversion","examples":["5123456789","gid://shopify/Order/5123456789"]},"order_number":{"type":"string","maxLength":100,"nullable":true,"title":"Order Number","description":"Order number of the source order that drove this conversion","examples":["1234","56789"]},"order_name":{"type":"string","maxLength":255,"nullable":true,"title":"Order Name","description":"Display name of the source order that drove this conversion","examples":["#1234","#IXF56789"]}},"type":"object","title":"OrderAnalyticsResponseDTO","description":"Order analytics data returned in order responses."},"OrderCampaignsDTO-Input":{"properties":{"banner":{"$ref":"#/components/schemas/CampaignResponseDTO-Input","nullable":true,"description":"The banner promotion campaign"},"basic":{"$ref":"#/components/schemas/CampaignResponseDTO-Input","nullable":true,"description":"The basic promotion campaign"},"product":{"$ref":"#/components/schemas/CampaignResponseDTO-Input","nullable":true,"description":"The product promotion campaign"}},"type":"object","title":"OrderCampaignsDTO","description":"The Campaigns object to be exchanged with the HTTP clients for an order."},"OrderCampaignsDTO-Output":{"properties":{"banner":{"$ref":"#/components/schemas/CampaignResponseDTO-Output","nullable":true,"description":"The banner promotion campaign"},"basic":{"$ref":"#/components/schemas/CampaignResponseDTO-Output","nullable":true,"description":"The basic promotion campaign"},"product":{"$ref":"#/components/schemas/CampaignResponseDTO-Output","nullable":true,"description":"The product promotion campaign"}},"type":"object","title":"OrderCampaignsDTO","description":"The Campaigns object to be exchanged with the HTTP clients for an order."},"OrderDetailDTO-Input":{"properties":{"order_number":{"type":"string","title":"Order Number","description":"Opinionated numeric identification of the order","examples":["1234"]},"order_name":{"type":"string","nullable":true,"title":"Order Name","description":"Opinionated name of the order","examples":["IXF1234"]},"order_placed_at":{"type":"string","format":"date-time","nullable":true,"title":"Order Placed At","description":"Date the order was placed. Will take current time if not provided","examples":["2023-03-17T09:51:41+00:00"]},"total_order_price":{"type":"number","nullable":true,"title":"Total Order Price","description":"Total price of the order","examples":[29.99]},"shipping_price":{"type":"number","nullable":true,"title":"Shipping Price","description":"Total shipping price of the order","examples":[4.99]},"sub_total_price":{"type":"number","nullable":true,"title":"Sub Total Price","description":"Subtotal price of items before shipping and discounts","examples":[40.0]},"discount_price":{"type":"number","title":"Discount Price","description":"Total price of all the accumulated discounts","default":0,"examples":[4.99]},"products":{"items":{"$ref":"#/components/schemas/ProductDTO-Input"},"type":"array","maxItems":100,"title":"Products","description":"Line items for the order","default":[],"examples":[[{"bundled_products":[],"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Product A","type":"product"}]]},"discounts":{"items":{"$ref":"#/components/schemas/OrderDiscountDTO-Input"},"type":"array","title":"Discounts","description":"Discounts applied to the order","default":[],"examples":[[{"amount":"10.0","code":"ULTRA_OFFER","type":"percentage"}]]},"email_id":{"type":"string","nullable":true,"title":"Email Id","description":"Email address of the customer","examples":["hello@gokarla.io"]},"address":{"$ref":"#/components/schemas/AddressDTO-Input","description":"Shipment delivery address","examples":[{"city":"New York","street":"123 Main St","zip_code":"10001"}]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"ISO 4217 currency code (default to 'EUR')","default":"EUR","examples":["EUR"]},"segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Segments","description":"The segments to which the user of the order belongs","examples":[["segment1","segment2"]]},"payment_gateway_names":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Payment Gateway Names","description":"Raw payment gateway names from the shop system; more than one when payment was retried or split","examples":[["Cash on Delivery (COD)"],["shopify_payments"]]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Total weight of the order in grams","examples":[1000]},"external_customer_id":{"type":"string","nullable":true,"title":"External Customer Id","description":"External ID of the customer who purchased the order","examples":["1234067358984"]},"order_status_url":{"type":"string","nullable":true,"title":"Order Status Url","description":"URL to the order status page as given by the shop provider","examples":["https://shop.gokarla.io/1234067358984/orders/aabbcc/authenticate?key=secret"]},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Unique identifier for the order","examples":["550e8400-e29b-41d4-a716-446655440000"]},"external_id":{"type":"string","title":"External Id","description":"External identifier of the order as defined by the merchant shop system (e.g. shopify's order id)","examples":["2205783916624"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug identifier","examples":["my-shop"]},"merchant_slug":{"type":"string","nullable":true,"title":"Merchant Slug","description":"Merchant slug identifier (DEPRECATED - use shop_slug)"},"order_analytics":{"$ref":"#/components/schemas/OrderAnalyticsResponseDTO","nullable":true,"description":"Order analytics and attribution data"},"trackpage_token":{"type":"string","nullable":true,"title":"Trackpage Token","description":"HMAC-SHA256 token for trackpage URL authentication"},"trackpage_url":{"type":"string","nullable":true,"title":"Trackpage Url","description":"Complete trackpage URL with authentication token"},"trackings":{"items":{"$ref":"#/components/schemas/TrackingDTO-Input"},"type":"array","title":"Trackings","description":"The tracking information for the shipment/s involved in the order","default":[],"examples":[[{"carrier":{"carrier_reference":"dhl","tracking_number":"123456","tracking_url":"https://www.dhl.de/de/privatkunden/pakete-empfangen/verfolgen.html?lang=de&idc=123456"},"direction":"merchant_customer","estimated_arrival":{"language":"en","time_prediction":"Tomorrow"},"events":[{"event_key":"H10","event_name":"SUCCESSFULLY_DELIVERED","event_strings":{"event_status":"Yippee! Your parcel was successfully delivered.","header_headline":"DELIVERED","header_subtitle":"","header_title":"Home","list_label":"Delivered: 2025-02-05T11:20:27+00:00"},"language":"en","location":{"city":"","country":"Austria","country_code":"AT","formatted_address":"Austria","full":"Austria, AT, 14.550072, 47.516231, Europe/Vienna","latitude":47.54401722075543,"line1":"","line2":"","location_type":"","longitude":14.02504506285114,"place":"Austria","postal_code":"","region":"","state_or_province":"","timezone":"Europe/Vienna"},"phase":"delivered","time":"2025-02-05T11:20:27+00:00"},{"event_key":"G20","event_name":"OUT_FOR_DELIVERY","event_strings":{"event_status":"Get ready! Your parcel is on the van and is likely to arrive today.","header_headline":"ARRIVING","header_subtitle":"","header_title":"Today","list_label":"Arriving Today"},"language":"en","location":{"city":"","country":"Austria","country_code":"AT","formatted_address":"Austria","full":"Austria, AT, 14.550072, 47.516231, Europe/Vienna","latitude":47.54401722075543,"line1":"","line2":"","location_type":"","longitude":14.02504506285114,"place":"Austria","postal_code":"","region":"","state_or_province":"","timezone":"Europe/Vienna"},"phase":"in_delivery","time":"2025-02-05T07:49:31+00:00"},{"event_key":"E18","event_name":"DISPATCHED_FROM_SORTING_CENTER","event_strings":{"event_status":"Moving on! Your parcel has left the sorting center.","header_headline":"IN TRANSIT","header_subtitle":"","header_title":"Today","list_label":"Arriving Today"},"language":"en","phase":"in_transit","time":"2025-02-04T08:34:10+00:00"},{"event_key":"C20","event_name":"SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER","event_strings":{"event_status":"Your parcel info was sent to DHL.","header_headline":"DISPATCHED","header_subtitle":"","header_title":"DHL received your order","list_label":"Dispatched"},"language":"en","phase":"order_processed","time":"2025-02-03T05:14:12+00:00"},{"event_key":"A12","event_name":"ORDER_PROCESSED","event_strings":{"event_status":"Your parcel has been packed and is ready to be shipped.","header_headline":"PACKED","header_subtitle":"","header_title":"Your parcel has been packed","list_label":"packed"},"language":"en","phase":"order_processed","time":"2025-02-03T05:14:12+00:00"},{"event_key":"A10","event_name":"ORDER_CREATED","event_strings":{"event_status":"You've placed an online order.","header_headline":"ORDER PLACED","header_subtitle":"","header_title":"Thanks for shopping!","list_label":"Order placed"},"language":"en","phase":"order_created","time":"2025-02-02T07:08:10+00:00"}],"flag":"normal","id":"ee5c4b53-f661-455e-85d2-a7b7bcaf81bf","merchant_id":"d7cbb719-2a7b-48d3-9116-153c60c800bd","merchant_slug":"gokarla","order_id":"b721e24e-15ed-48d8-a7e7-4652bcaa60e3","order_number":"123456","pickup":{"address":{"city":"New York","street":"123 Main St","zip_code":"10001"},"name":"John Doe","type":"neighbor"},"products":[{"bundled_products":[],"images":[{"src":"https://www.example.com/image.jpg"}],"price":10.0,"quantity":1,"requires_shipping":true,"sku":"123456","tax_lines":[],"title":"Individual Product","weight":100.0},{"bundled_products":[{"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Bundled Product"}],"images":[{"src":"https://www.example.com/image.jpg"}],"price":20.0,"quantity":2,"requires_shipping":true,"sku":"123457","tax_lines":[],"title":"Product Bundle","weight":100.0}],"shop_slug":"gokarla","uuid":"ee5c4b53-f661-455e-85d2-a7b7bcaf81bf"}]]}},"type":"object","required":["order_number","address","uuid","external_id","shop_slug"],"title":"OrderDetailDTO","description":"The Order object with data that should not be exposed without authentication."},"OrderDetailDTO-Output":{"properties":{"order_number":{"type":"string","title":"Order Number","description":"Opinionated numeric identification of the order","examples":["1234"]},"order_name":{"type":"string","nullable":true,"title":"Order Name","description":"Opinionated name of the order","examples":["IXF1234"]},"order_placed_at":{"type":"string","format":"date-time","nullable":true,"title":"Order Placed At","description":"Date the order was placed. Will take current time if not provided","examples":["2023-03-17T09:51:41+00:00"]},"total_order_price":{"type":"number","nullable":true,"title":"Total Order Price","description":"Total price of the order","examples":[29.99]},"shipping_price":{"type":"number","nullable":true,"title":"Shipping Price","description":"Total shipping price of the order","examples":[4.99]},"sub_total_price":{"type":"number","nullable":true,"title":"Sub Total Price","description":"Subtotal price of items before shipping and discounts","examples":[40.0]},"discount_price":{"type":"number","title":"Discount Price","description":"Total price of all the accumulated discounts","default":0,"examples":[4.99]},"products":{"items":{"$ref":"#/components/schemas/ProductDTO-Output"},"type":"array","maxItems":100,"title":"Products","description":"Line items for the order","default":[],"examples":[[{"bundled_products":[],"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Product A","type":"product"}]]},"discounts":{"items":{"$ref":"#/components/schemas/OrderDiscountDTO-Output"},"type":"array","title":"Discounts","description":"Discounts applied to the order","default":[],"examples":[[{"amount":"10.0","code":"ULTRA_OFFER","type":"percentage"}]]},"email_id":{"type":"string","nullable":true,"title":"Email Id","description":"Email address of the customer","examples":["hello@gokarla.io"]},"address":{"$ref":"#/components/schemas/AddressDTO-Output","description":"Shipment delivery address","examples":[{"city":"New York","street":"123 Main St","zip_code":"10001"}]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"ISO 4217 currency code (default to 'EUR')","default":"EUR","examples":["EUR"]},"segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Segments","description":"The segments to which the user of the order belongs","examples":[["segment1","segment2"]]},"payment_gateway_names":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Payment Gateway Names","description":"Raw payment gateway names from the shop system; more than one when payment was retried or split","examples":[["Cash on Delivery (COD)"],["shopify_payments"]]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Total weight of the order in grams","examples":[1000]},"external_customer_id":{"type":"string","nullable":true,"title":"External Customer Id","description":"External ID of the customer who purchased the order","examples":["1234067358984"]},"order_status_url":{"type":"string","nullable":true,"title":"Order Status Url","description":"URL to the order status page as given by the shop provider","examples":["https://shop.gokarla.io/1234067358984/orders/aabbcc/authenticate?key=secret"]},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Unique identifier for the order","examples":["550e8400-e29b-41d4-a716-446655440000"]},"external_id":{"type":"string","title":"External Id","description":"External identifier of the order as defined by the merchant shop system (e.g. shopify's order id)","examples":["2205783916624"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug identifier","examples":["my-shop"]},"merchant_slug":{"type":"string","nullable":true,"title":"Merchant Slug","description":"Merchant slug identifier (DEPRECATED - use shop_slug)"},"order_analytics":{"$ref":"#/components/schemas/OrderAnalyticsResponseDTO","nullable":true,"description":"Order analytics and attribution data"},"trackpage_token":{"type":"string","nullable":true,"title":"Trackpage Token","description":"HMAC-SHA256 token for trackpage URL authentication"},"trackpage_url":{"type":"string","nullable":true,"title":"Trackpage Url","description":"Complete trackpage URL with authentication token"},"trackings":{"items":{"$ref":"#/components/schemas/TrackingDTO-Output"},"type":"array","title":"Trackings","description":"The tracking information for the shipment/s involved in the order","default":[],"examples":[[{"carrier":{"carrier_reference":"dhl","tracking_number":"123456","tracking_url":"https://www.dhl.de/de/privatkunden/pakete-empfangen/verfolgen.html?lang=de&idc=123456"},"direction":"merchant_customer","estimated_arrival":{"language":"en","time_prediction":"Tomorrow"},"events":[{"event_key":"H10","event_name":"SUCCESSFULLY_DELIVERED","event_strings":{"event_status":"Yippee! Your parcel was successfully delivered.","header_headline":"DELIVERED","header_subtitle":"","header_title":"Home","list_label":"Delivered: 2025-02-05T11:20:27+00:00"},"language":"en","location":{"city":"","country":"Austria","country_code":"AT","formatted_address":"Austria","full":"Austria, AT, 14.550072, 47.516231, Europe/Vienna","latitude":47.54401722075543,"line1":"","line2":"","location_type":"","longitude":14.02504506285114,"place":"Austria","postal_code":"","region":"","state_or_province":"","timezone":"Europe/Vienna"},"phase":"delivered","time":"2025-02-05T11:20:27+00:00"},{"event_key":"G20","event_name":"OUT_FOR_DELIVERY","event_strings":{"event_status":"Get ready! Your parcel is on the van and is likely to arrive today.","header_headline":"ARRIVING","header_subtitle":"","header_title":"Today","list_label":"Arriving Today"},"language":"en","location":{"city":"","country":"Austria","country_code":"AT","formatted_address":"Austria","full":"Austria, AT, 14.550072, 47.516231, Europe/Vienna","latitude":47.54401722075543,"line1":"","line2":"","location_type":"","longitude":14.02504506285114,"place":"Austria","postal_code":"","region":"","state_or_province":"","timezone":"Europe/Vienna"},"phase":"in_delivery","time":"2025-02-05T07:49:31+00:00"},{"event_key":"E18","event_name":"DISPATCHED_FROM_SORTING_CENTER","event_strings":{"event_status":"Moving on! Your parcel has left the sorting center.","header_headline":"IN TRANSIT","header_subtitle":"","header_title":"Today","list_label":"Arriving Today"},"language":"en","phase":"in_transit","time":"2025-02-04T08:34:10+00:00"},{"event_key":"C20","event_name":"SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER","event_strings":{"event_status":"Your parcel info was sent to DHL.","header_headline":"DISPATCHED","header_subtitle":"","header_title":"DHL received your order","list_label":"Dispatched"},"language":"en","phase":"order_processed","time":"2025-02-03T05:14:12+00:00"},{"event_key":"A12","event_name":"ORDER_PROCESSED","event_strings":{"event_status":"Your parcel has been packed and is ready to be shipped.","header_headline":"PACKED","header_subtitle":"","header_title":"Your parcel has been packed","list_label":"packed"},"language":"en","phase":"order_processed","time":"2025-02-03T05:14:12+00:00"},{"event_key":"A10","event_name":"ORDER_CREATED","event_strings":{"event_status":"You've placed an online order.","header_headline":"ORDER PLACED","header_subtitle":"","header_title":"Thanks for shopping!","list_label":"Order placed"},"language":"en","phase":"order_created","time":"2025-02-02T07:08:10+00:00"}],"flag":"normal","id":"ee5c4b53-f661-455e-85d2-a7b7bcaf81bf","merchant_id":"d7cbb719-2a7b-48d3-9116-153c60c800bd","merchant_slug":"gokarla","order_id":"b721e24e-15ed-48d8-a7e7-4652bcaa60e3","order_number":"123456","pickup":{"address":{"city":"New York","street":"123 Main St","zip_code":"10001"},"name":"John Doe","type":"neighbor"},"products":[{"bundled_products":[],"images":[{"src":"https://www.example.com/image.jpg"}],"price":10.0,"quantity":1,"requires_shipping":true,"sku":"123456","tax_lines":[],"title":"Individual Product","weight":100.0},{"bundled_products":[{"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Bundled Product"}],"images":[{"src":"https://www.example.com/image.jpg"}],"price":20.0,"quantity":2,"requires_shipping":true,"sku":"123457","tax_lines":[],"title":"Product Bundle","weight":100.0}],"shop_slug":"gokarla","uuid":"ee5c4b53-f661-455e-85d2-a7b7bcaf81bf"}]]}},"type":"object","required":["order_number","address","uuid","external_id","shop_slug"],"title":"OrderDetailDTO","description":"The Order object with data that should not be exposed without authentication."},"OrderDiscountDTO-Input":{"properties":{"code":{"type":"string","title":"Code","description":"Code of the discount","examples":["SUMMER20","WELCOME10","FREESHIP"]},"amount":{"type":"string","nullable":true,"title":"Amount","description":"Amount of the discount","examples":["10.00","20","15.50",null]},"type":{"type":"string","nullable":true,"title":"Type","description":"Type of the discount","examples":["percentage","fixed_amount","free_shipping",null]}},"type":"object","required":["code"],"title":"OrderDiscountDTO","description":"DTO for standardized discount objects."},"OrderDiscountDTO-Output":{"properties":{"code":{"title":"Code","description":"Code of the discount","examples":["SUMMER20","WELCOME10","FREESHIP"]},"amount":{"title":"Amount","description":"Amount of the discount","examples":["10.00","20","15.50",null]},"type":{"title":"Type","description":"Type of the discount","examples":["percentage","fixed_amount","free_shipping",null]}},"type":"object","required":["code"],"title":"OrderDiscountDTO","description":"DTO for standardized discount objects."},"OrderFinderWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"background_type":{"type":"string","enum":["image","color"],"nullable":true,"title":"Background Type","description":"Type of background (image or color)"},"background_image":{"type":"string","nullable":true,"title":"Background Image","description":"URL of background image (when background_type is 'image')"},"background_alignment":{"type":"string","nullable":true,"title":"Background Alignment","description":"Background alignment"},"button_variant":{"type":"string","enum":["primary","secondary","outline"],"nullable":true,"title":"Button Variant","description":"Button style variant"}},"type":"object","title":"OrderFinderWidgetDTO","description":"Configuration for the order-finder widget."},"OrderFulfillmentDTO":{"properties":{"id":{"type":"string","title":"Id","description":"Order reference whose type is defined by the id_type field","examples":["11334422"]},"id_type":{"$ref":"#/components/schemas/OrderReferenceType","description":"Type of order identifier that is passed in the reference field","default":"order_number"},"order":{"$ref":"#/components/schemas/OrderPlacementDTO","nullable":true,"description":"Order information (will perform an upsert if provided)"},"trackings":{"items":{"$ref":"#/components/schemas/OrderTrackingRequestDTO"},"type":"array","maxItems":50,"title":"Trackings","description":"Tracking information relevant to the order (order must exist already if it is not provided)","examples":[[{"products":[],"tracking_number":"123456","tracking_placed_at":"2023-03-17T09:51:41Z"}]]},"order_analytics":{"additionalProperties":true,"type":"object","nullable":true,"title":"Order Analytics","description":"Attribution and analytics data to upsert on the order. Unlike `order.order_analytics`, which is written only at order creation, this field is merged on every fulfillment write — incoming keys overwrite same-named existing keys and other keys are preserved. Use it to attach or update attribution (source, campaign, medium, landing_url, referrer, …) when re-syncing an existing order. Note: the alias keys `affiliate_code` and `campaign_code` are translated into the canonical `source` and `campaign` fields and removed from the stored value; use `source` and `campaign` directly to bypass this translation."}},"type":"object","required":["id","trackings"],"title":"OrderFulfillmentDTO","description":"Representation of an order fulfillment as sent by a merchant."},"OrderPlacementDTO":{"properties":{"order_number":{"type":"string","title":"Order Number","description":"Opinionated numeric identification of the order","examples":["1234"]},"order_name":{"type":"string","nullable":true,"title":"Order Name","description":"Opinionated name of the order","examples":["IXF1234"]},"order_placed_at":{"type":"string","format":"date-time","nullable":true,"title":"Order Placed At","description":"Date the order was placed. Will take current time if not provided","examples":["2023-03-17T09:51:41+00:00"]},"total_order_price":{"type":"number","nullable":true,"title":"Total Order Price","description":"Total price of the order","examples":[29.99]},"shipping_price":{"type":"number","nullable":true,"title":"Shipping Price","description":"Total shipping price of the order","examples":[4.99]},"sub_total_price":{"type":"number","nullable":true,"title":"Sub Total Price","description":"Subtotal price of items before shipping and discounts","examples":[40.0]},"discount_price":{"type":"number","title":"Discount Price","description":"Total price of all the accumulated discounts","default":0,"examples":[4.99]},"products":{"items":{"$ref":"#/components/schemas/ProductDTO-Input"},"type":"array","maxItems":100,"title":"Products","description":"Line items for the order","default":[],"examples":[[{"bundled_products":[],"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Product A","type":"product"}]]},"discounts":{"items":{"$ref":"#/components/schemas/OrderDiscountDTO-Input"},"type":"array","title":"Discounts","description":"Discounts applied to the order","default":[],"examples":[[{"amount":"10.0","code":"ULTRA_OFFER","type":"percentage"}]]},"email_id":{"type":"string","nullable":true,"title":"Email Id","description":"Email address of the customer","examples":["hello@gokarla.io"]},"address":{"$ref":"#/components/schemas/AddressWithZipCodeDTO","description":"Shipment delivery address","examples":[{"city":"New York","street":"123 Main St","zip_code":"10001"}]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"ISO 4217 currency code (default to 'EUR')","default":"EUR","examples":["EUR"]},"segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Segments","description":"The segments to which the user of the order belongs","examples":[["segment1","segment2"]]},"payment_gateway_names":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Payment Gateway Names","description":"Raw payment gateway names from the shop system; more than one when payment was retried or split","examples":[["Cash on Delivery (COD)"],["shopify_payments"]]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Total weight of the order in grams","examples":[1000]},"external_customer_id":{"type":"string","nullable":true,"title":"External Customer Id","description":"External ID of the customer who purchased the order","examples":["1234067358984"]},"order_status_url":{"type":"string","nullable":true,"title":"Order Status Url","description":"URL to the order status page as given by the shop provider","examples":["https://shop.gokarla.io/1234067358984/orders/aabbcc/authenticate?key=secret"]},"external_id":{"type":"string","nullable":true,"title":"External Id","description":"External identifier of the order as defined by the merchant shop system (e.g. shopify's order id). If not provided or empty, defaults to order_number.","examples":["2205783916624"]},"preferred_delivery_date":{"$ref":"#/components/schemas/PreferredDeliveryDate","nullable":true,"description":"Preferred delivery date for the order"},"user_agent":{"type":"string","nullable":true,"title":"User Agent","description":"User agent of the customer","examples":[["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"]]},"order_analytics":{"additionalProperties":true,"type":"object","title":"Order Analytics","description":"Analytics information related to the order. This information is not used for any computation, but can be used to track the order in the merchant's analytics system.","default":{}},"expected_number_of_shipments":{"type":"integer","maximum":100.0,"title":"Expected Number Of Shipments","description":"Expected number of shipments for the order (defaults to 1)","default":1,"examples":[1]},"financial_status":{"$ref":"#/components/schemas/FinancialStatusEnum","nullable":true,"description":"Financial status of the order from Shopify","examples":["paid","refunded"]}},"type":"object","required":["order_number","address"],"title":"OrderPlacementDTO","description":"Representation of an order as sent by a merchant at checkout stage."},"OrderReferenceType":{"type":"string","enum":["uuid","external_id","order_number","order_name"],"title":"OrderReferenceType","description":"Enum for order reference types."},"OrderSummaryWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"hide_prices":{"type":"boolean","nullable":true,"title":"Hide Prices","description":"Whether to hide prices in the order summary"}},"type":"object","title":"OrderSummaryWidgetDTO","description":"Configuration for the order-summary widget."},"OrderTrackingRequestDTO":{"properties":{"tracking_number":{"type":"string","minLength":6,"title":"Tracking Number","description":"Tracking code(s), comma or semicolon separated","examples":["CH400397205DE,1234567890;ABCD1234"]},"tracking_url":{"type":"string","nullable":true,"title":"Tracking Url","description":"The tracking URL as it comes from the carrier."},"tracking_placed_at":{"type":"string","format":"date-time","nullable":true,"title":"Tracking Placed At","description":"Date the fulfillment was placed. Will take current time if not provided","examples":["2023-03-17T09:51:41+00:00"]},"carrier_reference":{"type":"string","nullable":true,"title":"Carrier Reference","description":"Carrier reference must be a valid karla carrier list value.","examples":["dhl"]},"external_shipment_id":{"type":"string","nullable":true,"title":"External Shipment Id","description":"External shipment ID (for instance, shopify's fulfillment id)"},"origin_full_address":{"$ref":"#/components/schemas/AddressSchema","nullable":true,"description":"Complete origin warehouse address"},"external_origin_id":{"type":"string","nullable":true,"title":"External Origin Id","description":"External origin identifier (e.g., Shopify location_id)"},"products":{"items":{"$ref":"#/components/schemas/ProductDTO-Input"},"type":"array","maxItems":50,"title":"Products","description":"Line items involved in the delivery. If not provided, all products from the related order will be considered as delivered.","default":[],"examples":[[{"bundled_products":[],"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Product A","type":"product"}]]},"tracking_company":{"type":"string","nullable":true,"title":"Tracking Company","description":"External Tracking Company Name - can be any string that identifies the carrier.","examples":["DHL Paket GmbH"]}},"type":"object","required":["tracking_number"],"title":"OrderTrackingRequestDTO","description":"Representation of an order tracking as sent by a merchant."},"OrderTrackingUpdateDTO":{"properties":{"tracking_url":{"type":"string","nullable":true,"title":"Tracking Url","description":"The tracking URL as it comes from the carrier."},"products":{"items":{"$ref":"#/components/schemas/ProductDTO-Input"},"type":"array","maxItems":50,"nullable":true,"title":"Products","description":"Line items involved in the delivery. Give an empty list to remove all products from the shipment.Any list provided will override the current products in the shipment (there is no merge). Will be skipped from update if not given","examples":[[{"bundled_products":[],"images":[],"price":10.0,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Product A","type":"product"}]]}},"type":"object","title":"OrderTrackingUpdateDTO","description":"Representation of an order tracking update."},"OrderUpdateDTO":{"properties":{"address":{"$ref":"#/components/schemas/AddressDTO-Input","nullable":true,"description":"Shipment delivery address (skips update if undefined)."},"expected_number_of_shipments":{"type":"integer","maximum":100.0,"nullable":true,"title":"Expected Number Of Shipments","description":"Expected number of shipments for the order (skips update if undefined).","examples":[1]},"segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Segments","description":"Segments to assign to the order, replacing any existing segments (skips update if undefined).","examples":[["segment1","segment2"]]}},"type":"object","title":"OrderUpdateDTO","description":"Payload for a partial update of an order."},"OrgCreationDTO":{"properties":{"slug":{"type":"string","title":"Slug","description":"Organization slug"},"name":{"type":"string","nullable":true,"title":"Name","description":"Organization name"},"email":{"type":"string","nullable":true,"title":"Email","description":"Organization email"},"phone":{"type":"string","nullable":true,"title":"Phone","description":"Organization phone"},"website":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Website","description":"Organization website"},"industry":{"type":"string","nullable":true,"title":"Industry","description":"Organization industry"}},"type":"object","required":["slug"],"title":"OrgCreationDTO","description":"Organization creation DTO."},"OrgDTO-Input":{"properties":{"id":{"nullable":true,"title":"Id"},"slug":{"type":"string","title":"Slug","description":"The organization url slug"},"name":{"type":"string","nullable":true,"title":"Name","description":"The organization name"},"email":{"type":"string","nullable":true,"title":"Email","description":"The organization email"},"phone":{"type":"string","nullable":true,"title":"Phone","description":"The organization phone"},"website":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Website","description":"The organization website"},"industry":{"type":"string","nullable":true,"title":"Industry","description":"The organization industry"},"sso_domain":{"type":"string","nullable":true,"title":"Sso Domain","description":"The SSO domain"},"feature_community":{"$ref":"#/components/schemas/FeatureCommunity","description":"The feature community users of the organization belong to"},"feature_toggles":{"additionalProperties":true,"type":"object","nullable":true,"title":"Feature Toggles","description":"The specific features users have access to"}},"type":"object","required":["slug","feature_community"],"title":"OrgDTO","description":"The Organization settings object to be exchanged with the HTTP clients."},"OrgDTO-Output":{"properties":{"slug":{"title":"Slug","description":"The organization url slug"},"name":{"title":"Name","description":"The organization name"},"email":{"title":"Email","description":"The organization email"},"phone":{"title":"Phone","description":"The organization phone"},"website":{"title":"Website","description":"The organization website"},"industry":{"title":"Industry","description":"The organization industry"},"sso_domain":{"title":"Sso Domain","description":"The SSO domain"},"feature_community":{"description":"The feature community users of the organization belong to"},"feature_toggles":{"title":"Feature Toggles","description":"The specific features users have access to"}},"type":"object","required":["slug","feature_community"],"title":"OrgDTO","description":"The Organization settings object to be exchanged with the HTTP clients."},"OrgUserInviteCreationDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"Email of the user to invite","examples":["test@example.com"]},"role":{"$ref":"#/components/schemas/UserRole","description":"User role in the organization","examples":["viewer"]}},"type":"object","required":["email","role"],"title":"OrgUserInviteCreationDTO","description":"Organization user invite creation DTO."},"PaginationInfo-Input":{"properties":{"page":{"type":"integer","title":"Page","description":"Current page number"},"per_page":{"type":"integer","title":"Per Page","description":"Items per page"},"total":{"type":"integer","title":"Total","description":"Total number of items"}},"type":"object","required":["page","per_page","total"],"title":"PaginationInfo","description":"Pagination metadata for API responses."},"PaginationInfo-Output":{"properties":{"page":{"type":"integer","title":"Page","description":"Current page number"},"per_page":{"type":"integer","title":"Per Page","description":"Items per page"},"total":{"type":"integer","title":"Total","description":"Total number of items"},"total_pages":{"type":"integer","title":"Total Pages","description":"Calculate total number of pages.","readOnly":true},"has_next":{"type":"boolean","title":"Has Next","description":"Check if there is a next page.","readOnly":true},"has_previous":{"type":"boolean","title":"Has Previous","description":"Check if there is a previous page.","readOnly":true}},"type":"object","required":["page","per_page","total","total_pages","has_next","has_previous"],"title":"PaginationInfo","description":"Pagination metadata for API responses."},"PhaseEnum":{"type":"string","enum":["collect","delivery_failed","delivered","in_delivery","in_transit","order_created","order_cancelled","order_processed","return_created","return_failed","return_received","return_transit","returned"],"title":"PhaseEnum","description":"Karla internal shipment phase describing the phase the shipment is in."},"PickUpTypeEnum":{"type":"string","enum":["shop","neighbor","locker","letterbox"],"title":"PickUpTypeEnum","description":"Pickup Type."},"PreferredDeliveryDate":{"properties":{"start":{"type":"string","format":"date-time","nullable":true,"title":"Start","description":"Preferred Delivery Date From","examples":["2024-01-18T08:00:00Z","2024-02-01T10:00:00Z",null]},"end":{"type":"string","format":"date-time","nullable":true,"title":"End","description":"Preferred Delivery Date To","examples":["2024-01-18T18:00:00Z","2024-02-01T20:00:00Z",null]},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Preferred Delivery Date last updated time","examples":["2024-01-15T14:30:00Z","2024-01-16T09:00:00Z",null]},"source":{"type":"string","nullable":true,"title":"Source","description":"Preferred Delivery Date source","examples":["customer","system","api",null]}},"type":"object","title":"PreferredDeliveryDate","description":"Schema for a preferred delivery date."},"ProductDTO-Input":{"properties":{"product_id":{"type":"string","nullable":true,"title":"Product Id","description":"Product ID","examples":["1234567890","1234567891",null]},"variant_id":{"type":"string","nullable":true,"title":"Variant Id","description":"Variant ID","examples":["1234567890","1234567891",null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Product title","examples":["Organic Coffee Beans","Wireless Mouse","T-Shirt",null]},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title","examples":["1kg / Dark Roast","Black / USB-C","Size L / Blue",null]},"quantity":{"type":"integer","nullable":true,"title":"Quantity","description":"Quantity of products","examples":[1,2,10,null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Price of the product","examples":[29.99,15.5,99.0,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10.0,79.0,null]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"Currency of the product (ISO 4217)","examples":["EUR","USD","GBP",null]},"size":{"type":"string","nullable":true,"title":"Size","description":"Size of the product","examples":["L","XL","40x30x20cm",null]},"images":{"items":{"$ref":"#/components/schemas/ProductImageSchema"},"type":"array","title":"Images","description":"List of product images","default":[],"examples":[[{"alt":"Organic coffee beans package front view","src":"https://cdn.shop.com/products/coffee-beans-main.jpg"},{"alt":"Organic coffee beans package side view","src":"https://cdn.shop.com/products/coffee-beans-side.jpg"}],[]]},"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product","examples":["PROD-001","ABC-123-XL","SKU-789456",null]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Weight of the product in grams","examples":[500.0,1000.0,250.5,null]},"tax_lines":{"items":{"$ref":"#/components/schemas/TaxLineSchema"},"type":"array","title":"Tax Lines","description":"List of tax lines","default":[],"examples":[[{"currency":"EUR","price":5.7,"rate":0.19,"title":"VAT 19%"},{"currency":"EUR","price":2.1,"rate":0.07,"title":"Reduced VAT 7%"}],[]]},"estimated_ship_date_start":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date Start","description":"Estimated ship date start from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"estimated_ship_date_end":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date End","description":"Estimated ship date end from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"requires_shipping":{"type":"boolean","title":"Requires Shipping","description":"Whether this product requires physical shipping. False for digital products, gift cards, services, etc.","default":true,"examples":[true,false]},"bundled_products":{"items":{"$ref":"#/components/schemas/BaseProductSchema"},"type":"array","title":"Bundled Products","description":"List of bundled products","default":[],"examples":[[{"images":[],"price":12.99,"quantity":1,"requires_shipping":true,"sku":"CUP-WH-350","tax_lines":[],"title":"Coffee Cup","variant_title":"White / 350ml","weight":150.0},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50.0}],[]]},"translations":{"additionalProperties":{"$ref":"#/components/schemas/ProductTranslationSchema"},"propertyNames":{"$ref":"#/components/schemas/LanguageEnum"},"type":"object","nullable":true,"title":"Translations","description":"Translations by language code"},"shipment_id":{"type":"string","format":"uuid","nullable":true,"title":"Shipment Id","description":"UUID of the shipment this product belongs to","examples":["dcc06277-4060-4b4b-b5cf-439511252d66"]},"type":{"$ref":"#/components/schemas/ProductTypeEnum","description":"The type of the product (individual or bundle)","default":"product"}},"type":"object","title":"ProductDTO","description":"Product schema belonging to orders or shipments."},"ProductDTO-Output":{"properties":{"product_id":{"title":"Product Id","description":"Product ID","examples":["1234567890","1234567891",null]},"variant_id":{"title":"Variant Id","description":"Variant ID","examples":["1234567890","1234567891",null]},"title":{"title":"Title","description":"Product title","examples":["Organic Coffee Beans","Wireless Mouse","T-Shirt",null]},"variant_title":{"title":"Variant Title","description":"Variant title","examples":["1kg / Dark Roast","Black / USB-C","Size L / Blue",null]},"quantity":{"title":"Quantity","description":"Quantity of products","examples":[1,2,10,null]},"price":{"title":"Price","description":"Price of the product","examples":[29.99,15.5,99.0,null]},"discount_price":{"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10.0,79.0,null]},"currency":{"title":"Currency","description":"Currency of the product (ISO 4217)","examples":["EUR","USD","GBP",null]},"size":{"title":"Size","description":"Size of the product","examples":["L","XL","40x30x20cm",null]},"images":{"title":"Images","description":"List of product images","examples":[[{"alt":"Organic coffee beans package front view","src":"https://cdn.shop.com/products/coffee-beans-main.jpg"},{"alt":"Organic coffee beans package side view","src":"https://cdn.shop.com/products/coffee-beans-side.jpg"}],[]]},"sku":{"title":"Sku","description":"SKU of the product","examples":["PROD-001","ABC-123-XL","SKU-789456",null]},"weight":{"title":"Weight","description":"Weight of the product in grams","examples":[500.0,1000.0,250.5,null]},"tax_lines":{"title":"Tax Lines","description":"List of tax lines","examples":[[{"currency":"EUR","price":5.7,"rate":0.19,"title":"VAT 19%"},{"currency":"EUR","price":2.1,"rate":0.07,"title":"Reduced VAT 7%"}],[]]},"estimated_ship_date_start":{"title":"Estimated Ship Date Start","description":"Estimated ship date start from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"estimated_ship_date_end":{"title":"Estimated Ship Date End","description":"Estimated ship date end from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"requires_shipping":{"title":"Requires Shipping","description":"Whether this product requires physical shipping. False for digital products, gift cards, services, etc.","examples":[true,false]},"bundled_products":{"title":"Bundled Products","description":"List of bundled products","examples":[[{"images":[],"price":12.99,"quantity":1,"requires_shipping":true,"sku":"CUP-WH-350","tax_lines":[],"title":"Coffee Cup","variant_title":"White / 350ml","weight":150.0},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50.0}],[]]},"translations":{"title":"Translations","description":"Translations by language code"},"shipment_id":{"title":"Shipment Id","description":"UUID of the shipment this product belongs to","examples":["dcc06277-4060-4b4b-b5cf-439511252d66"]},"type":{"description":"The type of the product (individual or bundle)"}},"type":"object","title":"ProductDTO","description":"Product schema belonging to orders or shipments."},"ProductImageSchema":{"properties":{"src":{"type":"string","title":"Src","description":"Source of the image","examples":["https://cdn.shop.com/products/coffee-beans-1kg.jpg","https://images.example.com/product-123-main.png"]},"alt":{"type":"string","nullable":true,"title":"Alt","description":"Alt of the image","examples":["Organic coffee beans package front view","Product thumbnail",null]}},"type":"object","required":["src"],"title":"ProductImageSchema","description":"Schema for a product image."},"ProductPromotionPropertiesI18n":{"properties":{"language":{"type":"string","title":"Language","description":"Language of the translation","examples":["en"]},"values":{"$ref":"#/components/schemas/ProductPromotionPropertiesText","description":"Product recommendation values to translate"}},"type":"object","required":["language","values"],"title":"ProductPromotionPropertiesI18n","description":"The product recommendation text values that are localized."},"ProductPromotionPropertiesRequestDTO":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label (e.g. for the story widget)","examples":["Go to shop"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink (e.g. for the story widget)","examples":["https://shop.gokarla.io"]},"product_source":{"$ref":"#/components/schemas/ProductSource","description":"Source of the products, dynamic will fetch from the shop, ","default":"manual","examples":["manual","dynamic"]},"add_to_cart_enabled":{"type":"boolean","title":"Add To Cart Enabled","description":"Use add-to-cart URLs instead of product page URLs for Shopify","default":false,"examples":[false,true]},"recommendation_exclusions":{"$ref":"#/components/schemas/RecommendationExclusionsDTO","description":"Filters that remove products from dynamic recommendations"},"products":{"anyOf":[{"items":{"$ref":"#/components/schemas/CampaignProductDetailsDTO"},"type":"array"},{"items":{"$ref":"#/components/schemas/CampaignProductDTO-Input"},"type":"array"}],"title":"Products","description":"Product recommendation list","default":[],"examples":[[{"category":"sale","discount":{"amount":10.0,"category":"percentage"},"id":"550e8400-e29b-41d4-a716-446655440000"},{"id":"550e8400-e29b-41d4-a716-446655440001"}],[{"currency":"EUR","image_url":"https://cdn.shop.com/products/coffee-beans.jpg","price":29.99,"product_url":"https://shop.example.com/products/coffee-beans?ref=karla","title":"Organic Coffee Beans"}]]},"translations":{"items":{"$ref":"#/components/schemas/ProductPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the product recommendation strings","examples":[[{"language":"en","values":{"cta_label":"Go to shop","cta_url":"https://shop.gokarla.io?ref=karla","title":"Items you may like"}},{"language":"de","values":{"cta_label":"Zum Shop","cta_url":"https://shop.example.com?ref=karla","title":"Artikel, die Ihnen gefallen könnten"}}],null]}},"type":"object","title":"ProductPromotionPropertiesRequestDTO","description":"The request properties of the product promotion that belongs to a campaign."},"ProductPromotionPropertiesResponseDTO-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label (e.g. for the story widget)","examples":["Go to shop"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink (e.g. for the story widget)","examples":["https://shop.gokarla.io"]},"product_source":{"$ref":"#/components/schemas/ProductSource","description":"Source of the products, dynamic will fetch from the shop, ","default":"manual","examples":["manual","dynamic"]},"add_to_cart_enabled":{"type":"boolean","title":"Add To Cart Enabled","description":"Use add-to-cart URLs instead of product page URLs for Shopify","default":false,"examples":[false,true]},"recommendation_exclusions":{"$ref":"#/components/schemas/RecommendationExclusionsDTO","description":"Filters that remove products from dynamic recommendations"},"products":{"items":{"$ref":"#/components/schemas/CampaignProductDTO-Input"},"type":"array","title":"Products","description":"Product recommendation list","default":[],"examples":[[{"currency":"EUR","image_url":"https://cdn.shop.com/products/coffee-beans.jpg","price":29.99,"product_url":"https://shop.example.com/products/coffee-beans?ref=karla","title":"Organic Coffee Beans"},{"currency":"EUR","image_url":"https://cdn.shop.com/products/coffee-mug.jpg","price":15.99,"product_url":"https://shop.example.com/products/coffee-mug?ref=karla","title":"Coffee Mug"}],[]]},"translations":{"items":{"$ref":"#/components/schemas/ProductPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the product recommendation strings","examples":[[{"language":"en","values":{"cta_label":"Go to shop","cta_url":"https://shop.example.com?ref=karla","title":"Items you may like"}},{"language":"de","values":{"cta_label":"Zum Shop","cta_url":"https://shop.example.com?ref=karla","title":"Artikel, die Ihnen gefallen könnten"}}],null]}},"type":"object","title":"ProductPromotionPropertiesResponseDTO","description":"The properties of the product promotion that belongs to a campaign."},"ProductPromotionPropertiesResponseDTO-Output":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Campaign Title","examples":["Items you may like"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label (e.g. for the story widget)","examples":["Go to shop"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink (e.g. for the story widget)","examples":["https://shop.gokarla.io"]},"product_source":{"$ref":"#/components/schemas/ProductSource","description":"Source of the products, dynamic will fetch from the shop, ","default":"manual","examples":["manual","dynamic"]},"add_to_cart_enabled":{"type":"boolean","title":"Add To Cart Enabled","description":"Use add-to-cart URLs instead of product page URLs for Shopify","default":false,"examples":[false,true]},"recommendation_exclusions":{"$ref":"#/components/schemas/RecommendationExclusionsDTO","description":"Filters that remove products from dynamic recommendations"},"products":{"items":{"$ref":"#/components/schemas/CampaignProductDTO-Output"},"type":"array","title":"Products","description":"Product recommendation list","default":[],"examples":[[{"currency":"EUR","image_url":"https://cdn.shop.com/products/coffee-beans.jpg","price":29.99,"product_url":"https://shop.example.com/products/coffee-beans?ref=karla","title":"Organic Coffee Beans"},{"currency":"EUR","image_url":"https://cdn.shop.com/products/coffee-mug.jpg","price":15.99,"product_url":"https://shop.example.com/products/coffee-mug?ref=karla","title":"Coffee Mug"}],[]]},"translations":{"items":{"$ref":"#/components/schemas/ProductPromotionPropertiesI18n"},"type":"array","nullable":true,"title":"Translations","description":"Translations for the product recommendation strings","examples":[[{"language":"en","values":{"cta_label":"Go to shop","cta_url":"https://shop.example.com?ref=karla","title":"Items you may like"}},{"language":"de","values":{"cta_label":"Zum Shop","cta_url":"https://shop.example.com?ref=karla","title":"Artikel, die Ihnen gefallen könnten"}}],null]}},"type":"object","title":"ProductPromotionPropertiesResponseDTO","description":"The properties of the product promotion that belongs to a campaign."},"ProductPromotionPropertiesText":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product Promotion title","examples":["Items you may like"]},"cta_label":{"type":"string","nullable":true,"title":"Cta Label","description":"Call to Action Label (e.g. for the story widget)","examples":["Go to shop"]},"cta_url":{"type":"string","nullable":true,"title":"Cta Url","description":"Call to Action hyperlink (e.g. for the story widget)","examples":["https://shop.gokarla.io"]}},"type":"object","title":"ProductPromotionPropertiesText","description":"Text of the product promotion that can be translated."},"ProductPromotionWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"auto_scroll":{"type":"boolean","nullable":true,"title":"Auto Scroll","description":"Whether to enable auto-scrolling"},"show_voucher_code":{"type":"boolean","nullable":true,"title":"Show Voucher Code","description":"Whether to show voucher codes"},"type":{"type":"string","enum":["product-promotion","social-media","others"],"nullable":true,"title":"Type","description":"Type of product promotion"},"show_card_border":{"type":"boolean","nullable":true,"title":"Show Card Border","description":"Whether to show card borders"}},"type":"object","title":"ProductPromotionWidgetDTO","description":"Configuration for the product-promotion widget."},"ProductRecommendationCategory":{"type":"string","enum":["sale","new"],"title":"ProductRecommendationCategory","description":"Type of product recommendation promotion category."},"ProductRecommendationI18n":{"properties":{"language":{"type":"string","title":"Language","description":"Language of the translation","examples":["en"]},"values":{"$ref":"#/components/schemas/ProductRecommendationText","description":"Product recommendation values to translate"}},"type":"object","required":["language","values"],"title":"ProductRecommendationI18n","description":"The product recommendation text values that are localized."},"ProductRecommendationText":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product Title","examples":["Delivery Socks"]},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Product Image URL","examples":["https://shop.gokarla.io/cdn/shop/products/Socks1.png"]},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product hyperlink","examples":["https://shop.gokarla.io/products/delivery-s-cks"]}},"type":"object","title":"ProductRecommendationText","description":"Text of the product recommendation that can be translated."},"ProductSaleDiscountDTO":{"properties":{"category":{"$ref":"#/components/schemas/DiscountCategory","description":"Type of the sale discount","examples":["percentage"]},"amount":{"type":"number","title":"Amount","description":"Sale discount amount","examples":[10.0]}},"type":"object","required":["category","amount"],"title":"ProductSaleDiscountDTO","description":"The properties of the product sale discount that belongs to a promotion."},"ProductSchema-Input":{"properties":{"product_id":{"type":"string","nullable":true,"title":"Product Id","description":"Product ID","examples":["1234567890","1234567891",null]},"variant_id":{"type":"string","nullable":true,"title":"Variant Id","description":"Variant ID","examples":["1234567890","1234567891",null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Product title","examples":["Organic Coffee Beans","Wireless Mouse","T-Shirt",null]},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title","examples":["1kg / Dark Roast","Black / USB-C","Size L / Blue",null]},"quantity":{"type":"integer","nullable":true,"title":"Quantity","description":"Quantity of products","examples":[1,2,10,null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Price of the product","examples":[29.99,15.5,99.0,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10.0,79.0,null]},"currency":{"type":"string","nullable":true,"title":"Currency","description":"Currency of the product (ISO 4217)","examples":["EUR","USD","GBP",null]},"size":{"type":"string","nullable":true,"title":"Size","description":"Size of the product","examples":["L","XL","40x30x20cm",null]},"images":{"items":{"$ref":"#/components/schemas/ProductImageSchema"},"type":"array","title":"Images","description":"List of product images","default":[],"examples":[[{"alt":"Organic coffee beans package front view","src":"https://cdn.shop.com/products/coffee-beans-main.jpg"},{"alt":"Organic coffee beans package side view","src":"https://cdn.shop.com/products/coffee-beans-side.jpg"}],[]]},"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product","examples":["PROD-001","ABC-123-XL","SKU-789456",null]},"weight":{"type":"number","nullable":true,"title":"Weight","description":"Weight of the product in grams","examples":[500.0,1000.0,250.5,null]},"tax_lines":{"items":{"$ref":"#/components/schemas/TaxLineSchema"},"type":"array","title":"Tax Lines","description":"List of tax lines","default":[],"examples":[[{"currency":"EUR","price":5.7,"rate":0.19,"title":"VAT 19%"},{"currency":"EUR","price":2.1,"rate":0.07,"title":"Reduced VAT 7%"}],[]]},"estimated_ship_date_start":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date Start","description":"Estimated ship date start from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"estimated_ship_date_end":{"type":"string","format":"date-time","nullable":true,"title":"Estimated Ship Date End","description":"Estimated ship date end from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"requires_shipping":{"type":"boolean","title":"Requires Shipping","description":"Whether this product requires physical shipping. False for digital products, gift cards, services, etc.","default":true,"examples":[true,false]},"bundled_products":{"items":{"$ref":"#/components/schemas/BaseProductSchema"},"type":"array","title":"Bundled Products","description":"List of bundled products","default":[],"examples":[[{"images":[],"price":12.99,"quantity":1,"requires_shipping":true,"sku":"CUP-WH-350","tax_lines":[],"title":"Coffee Cup","variant_title":"White / 350ml","weight":150.0},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50.0}],[]]},"translations":{"additionalProperties":{"$ref":"#/components/schemas/ProductTranslationSchema"},"propertyNames":{"$ref":"#/components/schemas/LanguageEnum"},"type":"object","nullable":true,"title":"Translations","description":"Translations by language code"}},"type":"object","title":"ProductSchema","description":"Schema for a product or a bundle of products."},"ProductSchema-Output":{"properties":{"product_id":{"title":"Product Id","description":"Product ID","examples":["1234567890","1234567891",null]},"variant_id":{"title":"Variant Id","description":"Variant ID","examples":["1234567890","1234567891",null]},"title":{"title":"Title","description":"Product title","examples":["Organic Coffee Beans","Wireless Mouse","T-Shirt",null]},"variant_title":{"title":"Variant Title","description":"Variant title","examples":["1kg / Dark Roast","Black / USB-C","Size L / Blue",null]},"quantity":{"title":"Quantity","description":"Quantity of products","examples":[1,2,10,null]},"price":{"title":"Price","description":"Price of the product","examples":[29.99,15.5,99.0,null]},"discount_price":{"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10.0,79.0,null]},"currency":{"title":"Currency","description":"Currency of the product (ISO 4217)","examples":["EUR","USD","GBP",null]},"size":{"title":"Size","description":"Size of the product","examples":["L","XL","40x30x20cm",null]},"images":{"title":"Images","description":"List of product images","examples":[[{"alt":"Organic coffee beans package front view","src":"https://cdn.shop.com/products/coffee-beans-main.jpg"},{"alt":"Organic coffee beans package side view","src":"https://cdn.shop.com/products/coffee-beans-side.jpg"}],[]]},"sku":{"title":"Sku","description":"SKU of the product","examples":["PROD-001","ABC-123-XL","SKU-789456",null]},"weight":{"title":"Weight","description":"Weight of the product in grams","examples":[500.0,1000.0,250.5,null]},"tax_lines":{"title":"Tax Lines","description":"List of tax lines","examples":[[{"currency":"EUR","price":5.7,"rate":0.19,"title":"VAT 19%"},{"currency":"EUR","price":2.1,"rate":0.07,"title":"Reduced VAT 7%"}],[]]},"estimated_ship_date_start":{"title":"Estimated Ship Date Start","description":"Estimated ship date start from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"estimated_ship_date_end":{"title":"Estimated Ship Date End","description":"Estimated ship date end from line item properties","examples":["2025-10-23T00:00:00Z","23.10.2025",null]},"requires_shipping":{"title":"Requires Shipping","description":"Whether this product requires physical shipping. False for digital products, gift cards, services, etc.","examples":[true,false]},"bundled_products":{"title":"Bundled Products","description":"List of bundled products","examples":[[{"images":[],"price":12.99,"quantity":1,"requires_shipping":true,"sku":"CUP-WH-350","tax_lines":[],"title":"Coffee Cup","variant_title":"White / 350ml","weight":150.0},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50.0}],[]]},"translations":{"title":"Translations","description":"Translations by language code"}},"type":"object","title":"ProductSchema","description":"Schema for a product or a bundle of products."},"ProductSource":{"type":"string","enum":["dynamic","manual"],"title":"ProductSource","description":"Source of the products."},"ProductTranslationSchema":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"}},"type":"object","title":"ProductTranslationSchema","description":"Schema for a product translation."},"ProductTypeEnum":{"type":"string","enum":["product","bundle"],"title":"ProductTypeEnum","description":"Product Type."},"PromotionType":{"type":"string","enum":["product","basic","banner"],"title":"PromotionType","description":"Type of the Campaign to store."},"ProxiedThirdParty":{"type":"string","enum":["brevo","klaviyo","shopify","shopware"],"title":"ProxiedThirdParty","description":"Supported third-party services for proxy requests."},"ProxyHttpMethod":{"type":"string","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"ProxyHttpMethod","description":"Supported HTTP methods for proxy requests."},"ProxyRequest":{"properties":{"target_url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Target Url"},"method":{"$ref":"#/components/schemas/ProxyHttpMethod"},"headers":{"additionalProperties":{"type":"string"},"type":"object","nullable":true,"title":"Headers"},"query_params":{"additionalProperties":true,"type":"object","nullable":true,"title":"Query Params"},"body":{"additionalProperties":true,"type":"object","nullable":true,"title":"Body"},"timeout":{"type":"integer","nullable":true,"title":"Timeout","default":30},"proxy_url":{"type":"string","nullable":true,"title":"Proxy Url","description":"Optional HTTP proxy URL (e.g., http://proxy.example.com:8080)"}},"type":"object","required":["target_url","method"],"title":"ProxyRequest","description":"Request model for third-party API proxy.","example":{"body":{"attributes":{"FIRSTNAME":"John","LASTNAME":"Doe"},"email":"test@example.com"},"headers":{"Accept":"application/json","Content-Type":"application/json"},"method":"POST","proxy_url":"http://proxy.example.com:8080","target_url":"https://api.brevo.com/v3/contacts","timeout":30}},"RecommendationExclusionsDTO":{"properties":{"category_paths":{"items":{"type":"string"},"type":"array","title":"Category Paths","description":"Category paths to exclude. Matches the exact path and any descendant paths under it (e.g. 'Apparel > Mens' also excludes 'Apparel > Mens > Shoes')."},"shop_product_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Shop Product Ids","description":"Specific shop_product UUIDs (variants) to exclude. Variant-precise on the native engine; on the Shopify engine, exclusion is widened to the parent product."}},"type":"object","title":"RecommendationExclusionsDTO","description":"Filters that remove products from dynamic recommendations."},"ResolutionAction":{"type":"string","enum":["automate","refund","reorder","manual"],"title":"ResolutionAction","description":"What a matched resolution rule does."},"ResolutionConditionV1":{"properties":{"field":{"$ref":"#/components/schemas/ResolutionField","description":"Claim attribute to match"},"op":{"$ref":"#/components/schemas/ResolutionOperator","description":"Comparison operator"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"items":{"type":"string"},"type":"array"}],"title":"Value","description":"Comparison value. List for `in`; number for numeric operators; string for `equals` on categorical fields"}},"type":"object","required":["field","op","value"],"title":"ResolutionConditionV1","description":"A single condition in a resolution rule. All conditions of a rule AND."},"ResolutionField":{"type":"string","enum":["claim_reason","resolution_preference","claimed_value","claimed_quantity","shipment_status"],"title":"ResolutionField","description":"Claim attribute a resolution rule condition matches against."},"ResolutionNotifyMode":{"type":"string","enum":["silent","notify"],"title":"ResolutionNotifyMode","description":"Whether an automated resolution still creates a helpdesk ticket."},"ResolutionOperator":{"type":"string","enum":["equals","in","<=","<",">",">="],"title":"ResolutionOperator","description":"Operator for a resolution rule condition."},"ResolutionOutcome":{"type":"string","enum":["refunded","reordered","manual_shopify_error","manual_out_of_stock","manual_missing_address","manual_item_match_failed","manual_value_unresolved","manual_already_processed"],"title":"ResolutionOutcome","description":"Outcome of an automated refund/reorder resolution for a claim.\n\nRecords BOTH success and the reason a claim fell back to a manual ticket.\nOrder-scoped: a non-null value on any claim of an order marks that order\nas already auto-resolved (the dedup gate). Doubles as the measurement\ninstrument (dup rate, failure rate by reason)."},"ResolutionRuleV1-Input":{"properties":{"conditions":{"items":{"$ref":"#/components/schemas/ResolutionConditionV1"},"type":"array","title":"Conditions","description":"All conditions must match (AND) for the rule to apply"},"action":{"$ref":"#/components/schemas/ResolutionAction","description":"What happens when this rule matches"}},"type":"object","required":["conditions","action"],"title":"ResolutionRuleV1","description":"An ordered, first-match-wins resolution rule."},"ResolutionRuleV1-Output":{"properties":{"conditions":{"title":"Conditions","description":"All conditions must match (AND) for the rule to apply"},"action":{"description":"What happens when this rule matches"}},"type":"object","required":["conditions","action"],"title":"ResolutionRuleV1","description":"An ordered, first-match-wins resolution rule."},"ReturnAddress":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Contact/recipient name at the return location"},"street":{"type":"string","minLength":1,"title":"Street","description":"Street including house number"},"city":{"type":"string","minLength":1,"title":"City","description":"City"},"postal_code":{"type":"string","minLength":1,"title":"Postal Code","description":"Postal code"},"country":{"type":"string","minLength":1,"title":"Country","description":"ISO country code (alpha-3 preferred, e.g. 'DEU')"},"company":{"type":"string","nullable":true,"title":"Company","description":"Company name, if distinct from the contact name"},"street2":{"type":"string","nullable":true,"title":"Street2","description":"Second address line"},"state":{"type":"string","nullable":true,"title":"State","description":"State / province"},"phone":{"type":"string","nullable":true,"title":"Phone","description":"Contact phone"},"email":{"type":"string","nullable":true,"title":"Email","description":"Contact email"}},"type":"object","required":["name","street","city","postal_code","country"],"title":"ReturnAddress","description":"The merchant's return destination — the label service's ship-to."},"ReturnItemWeight":{"properties":{"unit":{"type":"string","minLength":1,"title":"Unit","description":"Weight unit (e.g. 'g', 'kg')"},"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value","description":"Weight value"}},"type":"object","required":["unit","value"],"title":"ReturnItemWeight","description":"A default parcel weight for label-service returns."},"ReturnLabelShipperDTO":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Full name of the returning customer"},"address_street":{"type":"string","minLength":1,"title":"Address Street","description":"Street name, without the house number"},"address_house":{"type":"string","title":"Address House","description":"House/building number. May be empty when it cannot be parsed out of the customer's address — the full street is sent as-is and DHL decides, rather than us refusing the return up front (KAR-2460).","default":""},"address_supplement":{"type":"string","nullable":true,"title":"Address Supplement","description":"Address detail that is neither street nor house number — floor, c/o, or district (e.g. '4. OG'). Sent to DHL as name2 so it is printed on the label instead of being dropped."},"postal_code":{"type":"string","minLength":1,"title":"Postal Code","description":"Postal code"},"city":{"type":"string","minLength":1,"title":"City","description":"City"},"country":{"type":"string","nullable":true,"title":"Country","description":"Country code (DHL expects a 3-letter ISO code, e.g. 'DEU'). Non-EU origins are not yet supported (customs declaration required)."},"state":{"type":"string","nullable":true,"title":"State","description":"State/province"},"email":{"type":"string","nullable":true,"title":"Email","description":"Email for return notifications"},"phone":{"type":"string","nullable":true,"title":"Phone","description":"Phone number"}},"type":"object","required":["name","address_street","postal_code","city"],"title":"ReturnLabelShipperDTO","description":"The customer returning the parcel (the return shipment's shipper)."},"ReturnLabelValueDTO":{"properties":{"currency":{"type":"string","title":"Currency","description":"ISO currency code (e.g. 'EUR')"},"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value","description":"Declared value"}},"type":"object","required":["currency","value"],"title":"ReturnLabelValueDTO","description":"Declared monetary value of the return parcel."},"ReturnLabelWeightDTO":{"properties":{"uom":{"type":"string","title":"Uom","description":"Unit of measure (e.g. 'g', 'kg')"},"value":{"type":"number","exclusiveMinimum":0.0,"title":"Value","description":"Weight value"}},"type":"object","required":["uom","value"],"title":"ReturnLabelWeightDTO","description":"Weight of the return parcel."},"ReturnProvider":{"type":"string","enum":["dhl_parcel_de","label_service"],"title":"ReturnProvider","description":"The service that creates a return label for a shipment's carrier."},"ReturnsSettingsV1":{"properties":{"default_provider":{"$ref":"#/components/schemas/ReturnProvider","nullable":true,"description":"Return provider for carriers without an explicit rule. Interim: any dhl_parcel_de entry enables DHL for all returns regardless of carrier."},"provider_by_carrier":{"additionalProperties":{"$ref":"#/components/schemas/ReturnProvider","nullable":true},"type":"object","title":"Provider By Carrier","description":"Per carrier-reference override of the return provider. Interim: not honored per carrier — any dhl_parcel_de entry enables DHL for all returns."},"return_address":{"$ref":"#/components/schemas/ReturnAddress","nullable":true,"description":"The merchant's return destination, used as the ship-to by the label service (label_service). Not used by DHL, which routes to the receiverId from the shop's DHL credentials. Must be set before a label-service return label can be generated."},"default_item_weight":{"$ref":"#/components/schemas/ReturnItemWeight","nullable":true,"description":"Default parcel weight applied to label-service (label_service) returns when the request omits item_weight. The label service requires a weight to create a label; DHL does not use it."}},"type":"object","title":"ReturnsSettingsV1","description":"Per-shop return-label configuration.\n\nA return label is created by one of two services:\n\n- ``dhl_parcel_de`` — DHL's own returns service. Its return destination is a\n  DHL-registered ``receiverId`` configured with the shop's DHL credentials,\n  **not** ``return_address`` below.\n- ``label_service`` — Karla's own return-label service. It ships returns to\n  ``return_address`` below.\n\nInterim (docs/designs/dhl-only-return-routing.md): the provider fields are\ninterpreted as \"is DHL enabled anywhere\", not as per-carrier routing — any\n``dhl_parcel_de`` entry enables DHL for all returns, and ``label_service``\nis disabled."},"ReviewsWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"variant":{"type":"string","enum":["trustpilot","fairing"],"nullable":true,"title":"Variant","description":"Review platform variant"},"redirection_link":{"type":"string","nullable":true,"title":"Redirection Link","description":"Link to redirect users for reviews"},"redirection_email":{"type":"string","nullable":true,"title":"Redirection Email","description":"Email for review collection"}},"type":"object","title":"ReviewsWidgetDTO","description":"Configuration for the reviews widget."},"SegmentMembershipDTO":{"properties":{"segments":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Segments","description":"Canonical segment ids the customer belongs to, e.g. 'Klaviyo.segment.VIP' or 'Klaviyo.list.Newsletter'. Null when nothing is cached for the email (never computed, or expired); an empty list is a real cached result meaning the customer belongs to no segments.","examples":[["Klaviyo.segment.VIP","Klaviyo.list.Newsletter"],[],null]}},"type":"object","title":"SegmentMembershipDTO","description":"The cached CRM segment memberships for one customer email."},"SegmentSettingsDTO":{"properties":{"klaviyo":{"type":"boolean","title":"Klaviyo","description":"Klaviyo segment retrieval status","examples":[true]},"shopify":{"type":"boolean","title":"Shopify","description":"Shopify segment retrieval status","default":true},"emarsys":{"type":"boolean","title":"Emarsys","description":"Emarsys segment retrieval status","examples":[true]},"brevo":{"type":"boolean","title":"Brevo","description":"Brevo segment retrieval status","examples":[true]},"inxmail":{"type":"boolean","title":"Inxmail","description":"Inxmail segment retrieval status","examples":[true]},"braze":{"type":"boolean","title":"Braze","description":"Braze segment retrieval status","examples":[true]},"hubspot":{"type":"boolean","title":"Hubspot","description":"HubSpot segment retrieval status","examples":[true]}},"type":"object","required":["klaviyo","emarsys","brevo","inxmail","braze","hubspot"],"title":"SegmentSettingsDTO","description":"The segment settings object to be exchanged with the HTTP clients."},"SegmentSettingsUpdateDTO":{"properties":{"klaviyo":{"type":"boolean","nullable":true,"title":"Klaviyo","description":"Toggle Klaviyo segment retrieval","examples":[true]},"emarsys":{"type":"boolean","nullable":true,"title":"Emarsys","description":"Toggle Emarsys segment retrieval","examples":[true]},"brevo":{"type":"boolean","nullable":true,"title":"Brevo","description":"Toggle Brevo segment retrieval","examples":[true]},"inxmail":{"type":"boolean","nullable":true,"title":"Inxmail","description":"Toggle Inxmail segment retrieval","examples":[true]},"braze":{"type":"boolean","nullable":true,"title":"Braze","description":"Toggle Braze segment retrieval","examples":[true]},"hubspot":{"type":"boolean","nullable":true,"title":"Hubspot","description":"Toggle HubSpot segment retrieval","examples":[true]}},"type":"object","title":"SegmentSettingsUpdateDTO","description":"The trigger settings update object to be exchanged with the HTTP clients."},"SelectedItemSchema":{"properties":{"sku":{"type":"string","nullable":true,"title":"Sku","description":"SKU of the product item","examples":["PROD-001","ABC-XL-BLK",null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Product title","examples":["Wireless Mouse","Coffee Beans 1kg",null]},"quantity":{"type":"integer","title":"Quantity","description":"Quantity of the product item","examples":[1,2,5]},"net_price":{"type":"number","nullable":true,"title":"Net Price","description":"Price of the product without a discount and taxes applied","examples":[29.99,15.5,99.0,null]},"image_urls":{"items":{"type":"string"},"type":"array","title":"Image Urls","description":"List of image URLs of the product","default":[],"examples":[["https://cdn.shop.com/products/damaged-item-1.jpg","https://cdn.shop.com/products/damaged-item-2.jpg"],[]]}},"type":"object","required":["quantity"],"title":"SelectedItemSchema","description":"The Selected product item data."},"SendEmailActionDTO":{"properties":{"type":{"type":"string","const":"send_email","title":"Type","description":"Discriminator for the action union"},"email_template_id":{"type":"string","format":"uuid","title":"Email Template Id","description":"Shop email template to send"}},"type":"object","required":["type","email_template_id"],"title":"SendEmailActionDTO","description":"Send one of the shop's email templates."},"SettingStatus":{"type":"string","enum":["disabled","live","testing"],"title":"SettingStatus","description":"Status enum."},"ShipmentAction":{"type":"string","enum":["submit_to_aggregators","fetch_hc_shipment_updates","send_internal_triggers"],"title":"ShipmentAction","description":"The actions to be taken on a shipment."},"ShipmentActionRequestDTO":{"properties":{"shipment_uuid":{"type":"string","format":"uuid","title":"Shipment Uuid","description":"Shipment UUID to be processed","examples":["abcde6277-4060-4b4b-b5cf-439511252d66"]},"action":{"$ref":"#/components/schemas/ShipmentAction","description":"The action to be taken on the shipment","examples":["submit_to_aggregators"]},"payload":{"additionalProperties":true,"type":"object","title":"Payload","description":"The payload to be sent with the action","default":{}}},"type":"object","required":["shipment_uuid","action"],"title":"ShipmentActionRequestDTO","description":"Representation of an action to be taken on a shipment."},"ShipmentAddEventRequestDTO":{"properties":{"event_name":{"type":"string","title":"Event Name","description":"The event to be added to the shipment. See [Shipment Events](https://docs.gokarla.io/platform/features/events) for more details.<br><details><summary>Must be one of</summary>- `ACCEPTED_BY_DESTINATION_OFFICE`<br>- `ACCEPTED_BY_ORIGIN_OFFICE`<br>- `ARRIVAL_AT_FINAL_DELIVERY_CENTER`<br>- `ARRIVAL_AT_TRANSPORT_HUB`<br>- `ARRIVAL_IN_DESTINATION_COUNTRY`<br>- `ARRIVED_AT_COMMUNITY_BOX`<br>- `ARRIVED_AT_PARCEL_LOCKER`<br>- `ARRIVED_AT_PARCEL_SHOP`<br>- `ARRIVED_AT_PICKUP_POINT`<br>- `ARRIVED_AT_POST_OFFICE`<br>- `ARRIVED_AT_SORTING_CENTER`<br>- `ASSIGNED_TO_TRANSPORT`<br>- `ATTEMPTED_DELIVERY_UNDELIVERABLE`<br>- `AT_SORTING_CENTER`<br>- `AT_TRANSPORT_HUB`<br>- `CARRIER_UNKNOWN`<br>- `COMPLETION_OF_CUSTOMS_PROCESSING`<br>- `COMPLETION_OF_EXPORT_PROCESSING`<br>- `CUSTOMS_PROCESSING`<br>- `DELAY_EXPECTED`<br>- `DELAY_IN_TRANSPORT`<br>- `DELAY_IN_TRANSPORT_MISROUTED_SHIPMENT`<br>- `DELAY_IN_TRANSPORT_OFFLOADED_SHIPMENT`<br>- `DELIVERY_ATTEMPTED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_MOVED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_NOT_KNOWN_AT_ADDRESS`<br>- `DELIVERY_ATTEMPTED_ADDRESS_COULD_NOT_BE_FOUND`<br>- `DELIVERY_ATTEMPTED_CASH_ON_DELIVERY_AMOUNT_NOT_READY`<br>- `DELIVERY_ATTEMPTED_FAILED_WILL_TRY_AGAIN`<br>- `DELIVERY_ATTEMPTED_FORWARDING_TO_PICKUP_LOCATION`<br>- `DELIVERY_ATTEMPTED_LAST_ATTEMPT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME_CARD_LEFT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_VERIFICATION_UNSUCCESSFUL`<br>- `DELIVERY_ATTEMPTED_REJECTED_BY_ADDRESSEE`<br>- `DELIVERY_FAILED_SHIPMENT_DESTROYED`<br>- `DELIVERY_LAPSED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_LOCKER`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_SHOP`<br>- `DELIVERY_OPTION_ALTERNATE_TIME_REQUESTED`<br>- `DELIVERY_OPTION_REQUESTED_BY_RECEIVER`<br>- `DELIVERY_SCHEDULED_IN_THE_FINAL_DELIVERY_DEPOT`<br>- `DEPARTURE_FROM_TRANSPORT_HUB`<br>- `DISPATCHED_FROM_DELIVERY_CENTER`<br>- `DISPATCHED_FROM_FORWARDING_DEPOT`<br>- `DISPATCHED_FROM_SORTING_CENTER`<br>- `DISPATCHING_STARTED_AT_PROCESSING_CENTER`<br>- `ENCODING_COMPLETED_AT_PROCESSING_CENTER`<br>- `ENCODING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `ENCODING_STARTED_AT_PROCESSING_CENTER`<br>- `ERROR_IN_PARCEL_DATA_SUBMISSION`<br>- `ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `EXPORT_PROCESSING`<br>- `FAILED_TO_HAND_OVER_TO_DELIVERY_PARTNER`<br>- `HANDED_OVER_TO_DELIVERY_PARTNER`<br>- `HELD_AT_CUSTOMS`<br>- `HELD_AT_CUSTOMS_FOR_ADDITIONAL_PAYMENT`<br>- `HELD_AT_CUSTOMS_FOR_CLARIFICATIONS`<br>- `HELD_AT_EXPORT_PROCESSING`<br>- `INBOUND_FLIGHT_ARRIVED`<br>- `INBOUND_TRUCK_ARRIVED`<br>- `IN_DELIVERY`<br>- `ISSUES_IN_PROCESSING_BY_CUSTOMS_AUTHORITIES`<br>- `MISSING_SHIPMENT_INFORMATION`<br>- `MORE_INFO_ON_CARRIER_WEBSITE`<br>- `NOTIFICATION_SENT_TO_RECIPIENT`<br>- `NO_DELIVERY_ATTEMPT_ON_ROUTE`<br>- `ORDER_CANCELLED`<br>- `ORDER_CREATED`<br>- `ORDER_DELAYED`<br>- `ORDER_IN_PROCESSING`<br>- `ORDER_PROCESSED`<br>- `OUTBOUND_FLIGHT_DEPARTED`<br>- `OUTBOUND_TRUCK_DEPARTED`<br>- `OUT_FOR_DELIVERY`<br>- `PACKAGE_REROUTING_CANCELED_ROUTE_TO_HOME`<br>- `PARCEL_COLLECTED_FROM_DROP_OFF_LOCATION`<br>- `PARCEL_DATA_SUBMISSION_DELAYED`<br>- `PARCEL_DATA_SUBMITTED_TO_CARRIER`<br>- `PARCEL_DISPATCHED`<br>- `PARCEL_DROPPED_OFF_AT_PARCEL_LOCKER`<br>- `PARCEL_DROPPED_OFF_AT_POST_OFFICE`<br>- `PARCEL_DROPPED_OFF_IN_PARCEL_SHOP`<br>- `PARCEL_DROPPED_OFF_OVER_THE_COUNTER`<br>- `PARCEL_DROPPED_OFF_WITH_CARRIER`<br>- `PARCEL_READY_FOR_PICKUP`<br>- `PARCEL_TRANSFERRED_TO_THIRD_PARTY`<br>- `PARTIAL_DELIVERY`<br>- `PATCHED`<br>- `PICKUP_ATTEMPTED`<br>- `PICKUP_DELAYED`<br>- `PICKUP_FAILED`<br>- `PICKUP_SUCCESSFUL`<br>- `PROCEEDING_TO_CARRIER_FACILITY`<br>- `PROCESSED_AT_DELIVERY_CENTER`<br>- `PROCESSING_AT_TRANSPORT_HUB`<br>- `RECEIPT_AT_FORWARDING_DEPOT`<br>- `REJECTED_BY_CARRIER`<br>- `RETURNED_TO_DELIVERY_DEPOT`<br>- `RETURN_IN_PROGRESS`<br>- `RETURN_TO_ORIGIN_COUNTRY_CANCELLED`<br>- `RETURN_TO_ORIGIN_COUNTRY_COMPLETED`<br>- `RETURN_TO_ORIGIN_COUNTRY_FAILED`<br>- `RETURN_TO_SENDER_COMPLETED`<br>- `RETURN_TO_SENDER_FAILED`<br>- `RETURN_TO_SENDER_FAILED_RECIPIENT_VERIFICATION`<br>- `RETURN_TO_SENDER_FAILED_SERVICE_ERROR`<br>- `SCANNED_AT_PROCESSING_CENTER`<br>- `SHIPMENT_AT_FINAL_DELIVERY_CENTER`<br>- `SHIPMENT_CANCELLED`<br>- `SHIPMENT_DAMAGED`<br>- `SHIPMENT_DELAYED_DUE_TO_CUSTOMER_REQUEST`<br>- `SHIPMENT_EN_ROUTE`<br>- `SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER`<br>- `SHIPMENT_LOST`<br>- `SHIPMENT_LOST_IN_DELIVERY`<br>- `SHIPMENT_LOST_IN_PROCESSING`<br>- `SHIPMENT_LOST_IN_SORTING_CENTER`<br>- `SHIPMENT_LOST_IN_TRANSIT`<br>- `SHIPMENT_LOST_IN_TRANSPORT`<br>- `SHIPMENT_LOST_UNKNOWN_REASON`<br>- `SHIPMENT_MISROUTED`<br>- `SHIPMENT_MISSING`<br>- `SHIPMENT_NEVER_ARRIVED`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_ON_HOLD_IN_DELIVERY_CENTER`<br>- `SHIPMENT_ON_ITS_WAY_TO_PICKUP_LOCATION`<br>- `SHIPMENT_REJECTED_RETURNING_TO_SENDER`<br>- `SHIPMENT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_RETURNED_TO_SENDER`<br>- `SHIPMENT_RETURNING_TO_SENDER`<br>- `SHIPMENT_SUCCESSFULLY_RETURNED_TO_SENDER`<br>- `SHIPMENT_UPDATED_ETA`<br>- `SHIPMENT_UPDATED_PICKUP`<br>- `SHIPPING_INFORMATION_UPDATED`<br>- `SORTING_COMPLETED_AT_PROCESSING_CENTER`<br>- `SORTING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `SORTING_STARTED_AT_PROCESSING_CENTER`<br>- `START_OF_CUSTOMS_PROCESSING`<br>- `START_OF_EXPORT_PROCESSING`<br>- `SUCCESSFULLY_COLLECTED`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_LOCKER`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_SHOP`<br>- `SUCCESSFULLY_COLLECTED_AT_POST_OFFICE`<br>- `SUCCESSFULLY_DELIVERED`<br>- `SUCCESSFULLY_DELIVERED_AND_CASH_ON_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_DOOR`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_LETTER_BOX`<br>- `SUCCESSFULLY_DELIVERED_AND_PROOF_OF_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_TO_NEIGHBOR`<br>- `SUCCESSFULLY_DELIVERED_TO_THE_COMMUNITY_MAILBOX`<br>- `TRANSPORT_ARRIVED`<br>- `TRANSPORT_DEPARTED`<br>- `USER_SUCCESSFULLY_DELIVERED`<br></details>","examples":["ORDER_CREATED"]},"event_time":{"type":"string","format":"date-time","nullable":true,"title":"Event Time","description":"The event time to be added to the shipment (defaults to current time if not given)","examples":["2021-09-01T00:00:00Z"]},"external_id":{"type":"string","nullable":true,"title":"External Id","description":"The external ID of the event.","examples":["123456"]},"id":{"type":"string","title":"Id","description":"Reference of the shipment where you want to add the event. Supports order_number and external_order_id lookups (requires single shipment per order). Returns an error if multiple shipments exist — use shipment_uuid or tracking_number instead.","examples":["11334422"]},"id_type":{"$ref":"#/components/schemas/ShipmentReferenceType","description":"Type of shipment identifier that is passed in the reference field","default":"tracking_number"}},"type":"object","required":["event_name","id"],"title":"ShipmentAddEventRequestDTO","description":"Representation of an event to be added to a shipment.\n\nSee [Shipment Events](https://docs.gokarla.io/platform/features/events)\nfor more information about events."},"ShipmentAggregatorSubmission":{"properties":{"shipment_uuid":{"type":"string","title":"Shipment Uuid"},"aggregator_id":{"type":"string","nullable":true,"title":"Aggregator Id"}},"type":"object","required":["shipment_uuid"],"title":"ShipmentAggregatorSubmission","description":"Schema for submitting a shipment to aggregators."},"ShipmentDirectionEnum":{"type":"string","enum":["merchant_customer","customer_merchant","customer_partner","partner_customer"],"title":"ShipmentDirectionEnum","description":"Shipment Direction - indicates the flow of the shipment.\n\nMERCHANT_CUSTOMER: Standard outbound delivery from merchant to customer.\nCUSTOMER_MERCHANT: Customer return shipment from customer to merchant.\nCUSTOMER_PARTNER: Customer sends to a partner (lab, service center, etc.).\nPARTNER_CUSTOMER: Partner sends back to customer."},"ShipmentEventBaseDTO":{"properties":{"event_name":{"type":"string","title":"Event Name","description":"The event to be added to the shipment. See [Shipment Events](https://docs.gokarla.io/platform/features/events) for more details.<br><details><summary>Must be one of</summary>- `ACCEPTED_BY_DESTINATION_OFFICE`<br>- `ACCEPTED_BY_ORIGIN_OFFICE`<br>- `ARRIVAL_AT_FINAL_DELIVERY_CENTER`<br>- `ARRIVAL_AT_TRANSPORT_HUB`<br>- `ARRIVAL_IN_DESTINATION_COUNTRY`<br>- `ARRIVED_AT_COMMUNITY_BOX`<br>- `ARRIVED_AT_PARCEL_LOCKER`<br>- `ARRIVED_AT_PARCEL_SHOP`<br>- `ARRIVED_AT_PICKUP_POINT`<br>- `ARRIVED_AT_POST_OFFICE`<br>- `ARRIVED_AT_SORTING_CENTER`<br>- `ASSIGNED_TO_TRANSPORT`<br>- `ATTEMPTED_DELIVERY_UNDELIVERABLE`<br>- `AT_SORTING_CENTER`<br>- `AT_TRANSPORT_HUB`<br>- `CARRIER_UNKNOWN`<br>- `COMPLETION_OF_CUSTOMS_PROCESSING`<br>- `COMPLETION_OF_EXPORT_PROCESSING`<br>- `CUSTOMS_PROCESSING`<br>- `DELAY_EXPECTED`<br>- `DELAY_IN_TRANSPORT`<br>- `DELAY_IN_TRANSPORT_MISROUTED_SHIPMENT`<br>- `DELAY_IN_TRANSPORT_OFFLOADED_SHIPMENT`<br>- `DELIVERY_ATTEMPTED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_MOVED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_NOT_KNOWN_AT_ADDRESS`<br>- `DELIVERY_ATTEMPTED_ADDRESS_COULD_NOT_BE_FOUND`<br>- `DELIVERY_ATTEMPTED_CASH_ON_DELIVERY_AMOUNT_NOT_READY`<br>- `DELIVERY_ATTEMPTED_FAILED_WILL_TRY_AGAIN`<br>- `DELIVERY_ATTEMPTED_FORWARDING_TO_PICKUP_LOCATION`<br>- `DELIVERY_ATTEMPTED_LAST_ATTEMPT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME_CARD_LEFT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_VERIFICATION_UNSUCCESSFUL`<br>- `DELIVERY_ATTEMPTED_REJECTED_BY_ADDRESSEE`<br>- `DELIVERY_FAILED_SHIPMENT_DESTROYED`<br>- `DELIVERY_LAPSED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_LOCKER`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_SHOP`<br>- `DELIVERY_OPTION_ALTERNATE_TIME_REQUESTED`<br>- `DELIVERY_OPTION_REQUESTED_BY_RECEIVER`<br>- `DELIVERY_SCHEDULED_IN_THE_FINAL_DELIVERY_DEPOT`<br>- `DEPARTURE_FROM_TRANSPORT_HUB`<br>- `DISPATCHED_FROM_DELIVERY_CENTER`<br>- `DISPATCHED_FROM_FORWARDING_DEPOT`<br>- `DISPATCHED_FROM_SORTING_CENTER`<br>- `DISPATCHING_STARTED_AT_PROCESSING_CENTER`<br>- `ENCODING_COMPLETED_AT_PROCESSING_CENTER`<br>- `ENCODING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `ENCODING_STARTED_AT_PROCESSING_CENTER`<br>- `ERROR_IN_PARCEL_DATA_SUBMISSION`<br>- `ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `EXPORT_PROCESSING`<br>- `FAILED_TO_HAND_OVER_TO_DELIVERY_PARTNER`<br>- `HANDED_OVER_TO_DELIVERY_PARTNER`<br>- `HELD_AT_CUSTOMS`<br>- `HELD_AT_CUSTOMS_FOR_ADDITIONAL_PAYMENT`<br>- `HELD_AT_CUSTOMS_FOR_CLARIFICATIONS`<br>- `HELD_AT_EXPORT_PROCESSING`<br>- `INBOUND_FLIGHT_ARRIVED`<br>- `INBOUND_TRUCK_ARRIVED`<br>- `IN_DELIVERY`<br>- `ISSUES_IN_PROCESSING_BY_CUSTOMS_AUTHORITIES`<br>- `MISSING_SHIPMENT_INFORMATION`<br>- `MORE_INFO_ON_CARRIER_WEBSITE`<br>- `NOTIFICATION_SENT_TO_RECIPIENT`<br>- `NO_DELIVERY_ATTEMPT_ON_ROUTE`<br>- `ORDER_CANCELLED`<br>- `ORDER_CREATED`<br>- `ORDER_DELAYED`<br>- `ORDER_IN_PROCESSING`<br>- `ORDER_PROCESSED`<br>- `OUTBOUND_FLIGHT_DEPARTED`<br>- `OUTBOUND_TRUCK_DEPARTED`<br>- `OUT_FOR_DELIVERY`<br>- `PACKAGE_REROUTING_CANCELED_ROUTE_TO_HOME`<br>- `PARCEL_COLLECTED_FROM_DROP_OFF_LOCATION`<br>- `PARCEL_DATA_SUBMISSION_DELAYED`<br>- `PARCEL_DATA_SUBMITTED_TO_CARRIER`<br>- `PARCEL_DISPATCHED`<br>- `PARCEL_DROPPED_OFF_AT_PARCEL_LOCKER`<br>- `PARCEL_DROPPED_OFF_AT_POST_OFFICE`<br>- `PARCEL_DROPPED_OFF_IN_PARCEL_SHOP`<br>- `PARCEL_DROPPED_OFF_OVER_THE_COUNTER`<br>- `PARCEL_DROPPED_OFF_WITH_CARRIER`<br>- `PARCEL_READY_FOR_PICKUP`<br>- `PARCEL_TRANSFERRED_TO_THIRD_PARTY`<br>- `PARTIAL_DELIVERY`<br>- `PATCHED`<br>- `PICKUP_ATTEMPTED`<br>- `PICKUP_DELAYED`<br>- `PICKUP_FAILED`<br>- `PICKUP_SUCCESSFUL`<br>- `PROCEEDING_TO_CARRIER_FACILITY`<br>- `PROCESSED_AT_DELIVERY_CENTER`<br>- `PROCESSING_AT_TRANSPORT_HUB`<br>- `RECEIPT_AT_FORWARDING_DEPOT`<br>- `REJECTED_BY_CARRIER`<br>- `RETURNED_TO_DELIVERY_DEPOT`<br>- `RETURN_IN_PROGRESS`<br>- `RETURN_TO_ORIGIN_COUNTRY_CANCELLED`<br>- `RETURN_TO_ORIGIN_COUNTRY_COMPLETED`<br>- `RETURN_TO_ORIGIN_COUNTRY_FAILED`<br>- `RETURN_TO_SENDER_COMPLETED`<br>- `RETURN_TO_SENDER_FAILED`<br>- `RETURN_TO_SENDER_FAILED_RECIPIENT_VERIFICATION`<br>- `RETURN_TO_SENDER_FAILED_SERVICE_ERROR`<br>- `SCANNED_AT_PROCESSING_CENTER`<br>- `SHIPMENT_AT_FINAL_DELIVERY_CENTER`<br>- `SHIPMENT_CANCELLED`<br>- `SHIPMENT_DAMAGED`<br>- `SHIPMENT_DELAYED_DUE_TO_CUSTOMER_REQUEST`<br>- `SHIPMENT_EN_ROUTE`<br>- `SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER`<br>- `SHIPMENT_LOST`<br>- `SHIPMENT_LOST_IN_DELIVERY`<br>- `SHIPMENT_LOST_IN_PROCESSING`<br>- `SHIPMENT_LOST_IN_SORTING_CENTER`<br>- `SHIPMENT_LOST_IN_TRANSIT`<br>- `SHIPMENT_LOST_IN_TRANSPORT`<br>- `SHIPMENT_LOST_UNKNOWN_REASON`<br>- `SHIPMENT_MISROUTED`<br>- `SHIPMENT_MISSING`<br>- `SHIPMENT_NEVER_ARRIVED`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_ON_HOLD_IN_DELIVERY_CENTER`<br>- `SHIPMENT_ON_ITS_WAY_TO_PICKUP_LOCATION`<br>- `SHIPMENT_REJECTED_RETURNING_TO_SENDER`<br>- `SHIPMENT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_RETURNED_TO_SENDER`<br>- `SHIPMENT_RETURNING_TO_SENDER`<br>- `SHIPMENT_SUCCESSFULLY_RETURNED_TO_SENDER`<br>- `SHIPMENT_UPDATED_ETA`<br>- `SHIPMENT_UPDATED_PICKUP`<br>- `SHIPPING_INFORMATION_UPDATED`<br>- `SORTING_COMPLETED_AT_PROCESSING_CENTER`<br>- `SORTING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `SORTING_STARTED_AT_PROCESSING_CENTER`<br>- `START_OF_CUSTOMS_PROCESSING`<br>- `START_OF_EXPORT_PROCESSING`<br>- `SUCCESSFULLY_COLLECTED`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_LOCKER`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_SHOP`<br>- `SUCCESSFULLY_COLLECTED_AT_POST_OFFICE`<br>- `SUCCESSFULLY_DELIVERED`<br>- `SUCCESSFULLY_DELIVERED_AND_CASH_ON_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_DOOR`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_LETTER_BOX`<br>- `SUCCESSFULLY_DELIVERED_AND_PROOF_OF_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_TO_NEIGHBOR`<br>- `SUCCESSFULLY_DELIVERED_TO_THE_COMMUNITY_MAILBOX`<br>- `TRANSPORT_ARRIVED`<br>- `TRANSPORT_DEPARTED`<br>- `USER_SUCCESSFULLY_DELIVERED`<br></details>","examples":["ORDER_CREATED"]},"event_time":{"type":"string","format":"date-time","nullable":true,"title":"Event Time","description":"The event time to be added to the shipment (defaults to current time if not given)","examples":["2021-09-01T00:00:00Z"]},"external_id":{"type":"string","nullable":true,"title":"External Id","description":"The external ID of the event.","examples":["123456"]}},"type":"object","required":["event_name"],"title":"ShipmentEventBaseDTO","description":"Base representation of an event to be added to a shipment."},"ShipmentEventTypeDTO":{"properties":{"event_name":{"type":"string","title":"Event Name","description":"The event name, e.g. RETURN_IN_PROGRESS."},"phase":{"type":"string","nullable":true,"title":"Phase","description":"Lifecycle phase the event maps to, e.g. in_transit."},"event_group":{"type":"string","nullable":true,"title":"Event Group","description":"Forward-direction notification group that fires for this event, e.g. shipment_in_transit. Null when the event does not notify."}},"type":"object","required":["event_name"],"title":"ShipmentEventTypeDTO","description":"A shipment event type Karla can emit, as exposed in the public catalog."},"ShipmentGroupKey":{"type":"string","enum":["shipment_id","tracking_number","external_shipment_id"],"title":"ShipmentGroupKey","description":"Enum for the shipment group key."},"ShipmentReferenceType":{"type":"string","enum":["external_order_id","external_shipment_id","order_number","order_uuid","shipment_uuid","tracking_number"],"title":"ShipmentReferenceType","description":"Enum for shipment reference types."},"ShipmentResponseDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shipment UUID"},"order_id":{"type":"string","format":"uuid","nullable":true,"title":"Order Id","description":"Parent Order UUID"},"external_shipment_id":{"type":"string","nullable":true,"title":"External Shipment Id","description":"External shipment ID"},"tracking_number":{"type":"string","nullable":true,"title":"Tracking Number","description":"Carrier tracking number"},"carrier_reference":{"type":"string","nullable":true,"title":"Carrier Reference","description":"Carrier reference code"},"tracking_url":{"type":"string","nullable":true,"title":"Tracking Url","description":"Carrier tracking URL"},"phase":{"$ref":"#/components/schemas/PhaseEnum","description":"Shipment phase"},"flag":{"$ref":"#/components/schemas/FlagEnum","nullable":true,"description":"Shipment flag (normal, delay, error)"},"current_event_key":{"type":"string","nullable":true,"title":"Current Event Key","description":"Internal code of the current event. DEPRECATED: use `events[0].event_name` instead. This field will be removed in API v2.","deprecated":true},"direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"Shipment direction: `merchant_customer` (outbound to customer), `customer_merchant` (return from customer), `customer_partner` (customer to partner), `partner_customer` (partner to customer)","default":"merchant_customer","examples":["merchant_customer","customer_merchant","customer_partner","partner_customer"]},"zip_code":{"type":"string","nullable":true,"title":"Zip Code","description":"Destination zip code"},"email_id":{"type":"string","nullable":true,"title":"Email Id","description":"Customer email"},"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Shipment creation timestamp"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Last update timestamp"},"events":{"items":{"$ref":"#/components/schemas/TrackingEventDTO-Input"},"type":"array","title":"Events","description":"Shipment tracking events. See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events) for more details.","default":[]}},"type":"object","required":["uuid","phase"],"title":"ShipmentResponseDTO","description":"Response DTO for shipment search results."},"ShipmentResponseDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shipment UUID"},"order_id":{"type":"string","format":"uuid","nullable":true,"title":"Order Id","description":"Parent Order UUID"},"external_shipment_id":{"type":"string","nullable":true,"title":"External Shipment Id","description":"External shipment ID"},"tracking_number":{"type":"string","nullable":true,"title":"Tracking Number","description":"Carrier tracking number"},"carrier_reference":{"type":"string","nullable":true,"title":"Carrier Reference","description":"Carrier reference code"},"tracking_url":{"type":"string","nullable":true,"title":"Tracking Url","description":"Carrier tracking URL"},"phase":{"$ref":"#/components/schemas/PhaseEnum","description":"Shipment phase"},"flag":{"$ref":"#/components/schemas/FlagEnum","nullable":true,"description":"Shipment flag (normal, delay, error)"},"current_event_key":{"type":"string","nullable":true,"title":"Current Event Key","description":"Internal code of the current event. DEPRECATED: use `events[0].event_name` instead. This field will be removed in API v2.","deprecated":true},"direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"Shipment direction: `merchant_customer` (outbound to customer), `customer_merchant` (return from customer), `customer_partner` (customer to partner), `partner_customer` (partner to customer)","default":"merchant_customer","examples":["merchant_customer","customer_merchant","customer_partner","partner_customer"]},"zip_code":{"type":"string","nullable":true,"title":"Zip Code","description":"Destination zip code"},"email_id":{"type":"string","nullable":true,"title":"Email Id","description":"Customer email"},"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Shipment creation timestamp"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Last update timestamp"},"events":{"items":{"$ref":"#/components/schemas/TrackingEventDTO-Output"},"type":"array","title":"Events","description":"Shipment tracking events. See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events) for more details.","default":[]}},"type":"object","required":["uuid","phase"],"title":"ShipmentResponseDTO","description":"Response DTO for shipment search results."},"ShipmentsPaginatedResponse":{"properties":{"shipments":{"items":{"$ref":"#/components/schemas/ShipmentResponseDTO-Output"},"type":"array","title":"Shipments","description":"List of shipments"},"pagination":{"$ref":"#/components/schemas/PaginationInfo-Output","description":"Pagination metadata"}},"type":"object","required":["shipments","pagination"],"title":"ShipmentsPaginatedResponse","description":"Paginated response for shipments search.\n\nFollows Shopify-style naming convention with resource name as the key."},"ShopApiKeyCreatedDTO-Input":{"properties":{"id":{"type":"string","title":"Id","description":"Unique token identifier"},"secret":{"type":"string","title":"Secret","description":"Plaintext API key (shown only once)"},"username":{"type":"string","title":"Username","description":"The username holding the key"},"shops":{"items":{"$ref":"#/components/schemas/ShopRole"},"type":"array","title":"Shops","description":"Shops the token has access to"},"expiration":{"type":"integer","title":"Expiration","description":"Expiration time in Unix epoch (0 = never)"}},"type":"object","required":["id","secret","username","shops","expiration"],"title":"ShopApiKeyCreatedDTO","description":"Response after creating a new API key (plaintext secret, one-time display)."},"ShopApiKeyCreatedDTO-Output":{"properties":{"id":{"type":"string","title":"Id","description":"Unique token identifier"},"secret":{"type":"string","title":"Secret","description":"Plaintext API key (shown only once)"},"username":{"type":"string","title":"Username","description":"The username holding the key"},"shops":{"items":{"$ref":"#/components/schemas/ShopRole"},"type":"array","title":"Shops","description":"Shops the token has access to"},"expiration":{"type":"integer","title":"Expiration","description":"Expiration time in Unix epoch (0 = never)"}},"type":"object","required":["id","secret","username","shops","expiration"],"title":"ShopApiKeyCreatedDTO","description":"Response after creating a new API key (plaintext secret, one-time display)."},"ShopApiKeyCreationDTO":{"properties":{"role":{"$ref":"#/components/schemas/ShopRoleEnum","description":"The role for the new API key","default":"admin"},"expiration":{"type":"integer","minimum":0.0,"title":"Expiration","description":"Expiration time in Unix epoch (0 = never expires)","default":0}},"type":"object","title":"ShopApiKeyCreationDTO","description":"Request body for creating a new API key scoped to a shop."},"ShopApiKeyDeletionDTO":{"properties":{"token_id":{"type":"string","maxLength":16,"minLength":1,"title":"Token Id","description":"Unique token identifier"}},"type":"object","required":["token_id"],"title":"ShopApiKeyDeletionDTO","description":"Request body for deleting an API key by token ID."},"ShopApiKeysDTO-Input":{"properties":{"username":{"type":"string","title":"Username","description":"The username holding the keys"},"tokens":{"items":{"$ref":"#/components/schemas/ObfuscatedKarlaTokenDTO-Input"},"type":"array","title":"Tokens","description":"Obfuscated tokens"}},"type":"object","required":["username","tokens"],"title":"ShopApiKeysDTO","description":"List of obfuscated API keys for a shop."},"ShopApiKeysDTO-Output":{"properties":{"username":{"type":"string","title":"Username","description":"The username holding the keys"},"tokens":{"items":{"$ref":"#/components/schemas/ObfuscatedKarlaTokenDTO-Output"},"type":"array","title":"Tokens","description":"Obfuscated tokens"}},"type":"object","required":["username","tokens"],"title":"ShopApiKeysDTO","description":"List of obfuscated API keys for a shop."},"ShopBillingDTO":{"properties":{"subscription_tier":{"$ref":"#/components/schemas/SubscriptionTier","description":"Subscription tier, derived from carrier settings"}},"type":"object","required":["subscription_tier"],"title":"ShopBillingDTO","description":"Billing information for a shop, exposed via a dedicated endpoint."},"ShopCreationDTO":{"properties":{"name":{"type":"string","title":"Name","description":"Name to display","examples":["Karla"]},"description":{"type":"string","nullable":true,"title":"Description","description":"Shop description dependant on user language","examples":["Karla Shop"]},"organization":{"type":"string","nullable":true,"title":"Organization","description":"Organization the shop belongs to (premium only)"},"language":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Default language for the shop to fallback to in translations","default":"en","examples":["en"]},"contact_email":{"type":"string","nullable":true,"title":"Contact Email","description":"Shop contact email address","examples":["support@example.com"]},"contact_phone":{"type":"string","nullable":true,"title":"Contact Phone","description":"Shop contact phone number","examples":["+49 123 456 7890"]},"industry":{"$ref":"#/components/schemas/ShopIndustry","nullable":true,"description":"Shop industry category"},"shop_provider":{"$ref":"#/components/schemas/ShopProvider","nullable":true,"description":"Shop system provider"},"shop_admin_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Admin Url","description":"URL for API calls to the shop"},"shop_faq_url":{"type":"string","nullable":true,"title":"Shop Faq Url","description":"URL for the FAQ page"},"shop_service_url":{"type":"string","nullable":true,"title":"Shop Service Url","description":"URL for the service page"},"shop_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Url","description":"URL to the main shop"},"logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Logo Url","description":"Merchant logo image URL"},"slug":{"type":"string","title":"Slug","description":"Slug to filter","examples":["gokarla"]},"settings":{"$ref":"#/components/schemas/ShopCreationSettingsDTO","nullable":true,"description":"Initial settings for the shop to create","default":{"klaviyo_triggers_enabled":false,"shopify_triggers_enabled":false,"carriers_enabled":false}}},"type":"object","required":["name","slug"],"title":"ShopCreationDTO","description":"Payload for creation of a new merchant."},"ShopCreationSettingsDTO":{"properties":{"klaviyo_triggers_enabled":{"type":"boolean","nullable":true,"title":"Klaviyo Triggers Enabled","description":"Will send klaviyo events for shipment updates","default":false},"shopify_triggers_enabled":{"type":"boolean","nullable":true,"title":"Shopify Triggers Enabled","description":"Will send shopify events for shipment updates","default":false},"carriers_enabled":{"type":"boolean","nullable":true,"title":"Carriers Enabled","description":"Will submit shipments to carriers for tracking","default":false}},"type":"object","title":"ShopCreationSettingsDTO","description":"Payload for creation of a new merchant."},"ShopDTO":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shop UUID","examples":["0a1ba634-8850-4d2e-83fe-3c0b8d8e9e95"]},"name":{"type":"string","title":"Name","description":"Shop Name","examples":["Karla"]},"slug":{"type":"string","title":"Slug","description":"Shop Slug","examples":["gokarla"]},"organization":{"type":"string","nullable":true,"title":"Organization","description":"Organization the shop belongs to"},"language":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Default language for the merchant text strings","default":"en","examples":["en"]},"logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Logo Url","description":"Shop logo image URL"},"shop_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Url","description":"Merchant Shop URL"}},"type":"object","required":["uuid","name","slug"],"title":"ShopDTO","description":"The Shop object to be exchanged with the HTTP clients (publicly)."},"ShopDetailDTO":{"properties":{"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Time in which the resource was created","examples":["2024-01-15T10:30:00Z","2023-12-01T08:00:00Z",null]},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Time in which the resource was last updated after creation","examples":["2024-01-16T14:45:00Z","2024-01-15T16:00:00Z",null]},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shop UUID","examples":["0a1ba634-8850-4d2e-83fe-3c0b8d8e9e95"]},"name":{"type":"string","nullable":true,"title":"Name","description":"Name to display","examples":["Karla"]},"slug":{"type":"string","title":"Slug","description":"Shop Slug","examples":["gokarla"]},"organization":{"type":"string","nullable":true,"title":"Organization","description":"Organization the shop belongs to"},"language":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Default language for the shop to fallback to in translations","default":"en","examples":["en"]},"logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Logo Url","description":"Merchant logo image URL"},"shop_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Url","description":"URL to the main shop"},"description":{"type":"string","nullable":true,"title":"Description","description":"Shop description dependant on user language","examples":["Karla Shop"]},"contact_email":{"type":"string","nullable":true,"title":"Contact Email","description":"Shop contact email address","examples":["support@example.com"]},"contact_phone":{"type":"string","nullable":true,"title":"Contact Phone","description":"Shop contact phone number","examples":["+49 123 456 7890"]},"industry":{"$ref":"#/components/schemas/ShopIndustry","nullable":true,"description":"Shop industry category"},"shop_provider":{"$ref":"#/components/schemas/ShopProvider","nullable":true,"description":"Shop system provider"},"shop_admin_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Admin Url","description":"URL for API calls to the shop"},"shop_faq_url":{"type":"string","nullable":true,"title":"Shop Faq Url","description":"URL for the FAQ page"},"shop_service_url":{"type":"string","nullable":true,"title":"Shop Service Url","description":"URL for the service page"},"shop_currency":{"type":"string","nullable":true,"title":"Shop Currency","description":"Shop currency in ISO 4217 format, e.g. 'EUR', 'USD'"}},"type":"object","required":["uuid","slug"],"title":"ShopDetailDTO","description":"Shop data that should not be exposed without authentication."},"ShopEmailIdentityCreateDTO":{"properties":{"domain":{"type":"string","title":"Domain","description":"Domain to verify with SES. Normalized to lowercase.","examples":["example.com"]}},"type":"object","required":["domain"],"title":"ShopEmailIdentityCreateDTO","description":"Payload to create (or re-adopt) a shop's SES domain identity."},"ShopEmailIdentityResponseDTO-Input":{"properties":{"domain":{"type":"string","title":"Domain","description":"Domain registered as the SES identity","examples":["example.com"]},"mail_from_domain":{"type":"string","title":"Mail From Domain","description":"MAIL FROM subdomain configured for SPF alignment","examples":["mail.example.com"]},"verification_status":{"$ref":"#/components/schemas/EmailIdentityVerificationStatus","description":"Domain (DKIM) verification status","examples":["success"]},"mail_from_status":{"$ref":"#/components/schemas/EmailIdentityVerificationStatus","description":"MAIL FROM domain verification status","examples":["success"]},"dns_records":{"items":{"$ref":"#/components/schemas/DnsRecordDTO"},"type":"array","title":"Dns Records","description":"DNS records the shop owner must publish to verify the identity"},"challenge_verified":{"type":"boolean","title":"Challenge Verified","description":"True iff the shop's DNS sender-ownership challenge TXT record (see dns_records purpose=shop_challenge) is currently published and matches - live-checked on every call","examples":[true]}},"type":"object","required":["domain","mail_from_domain","verification_status","mail_from_status","dns_records","challenge_verified"],"title":"ShopEmailIdentityResponseDTO","description":"Response payload describing the live SES state of a shop's domain identity."},"ShopEmailIdentityResponseDTO-Output":{"properties":{"domain":{"type":"string","title":"Domain","description":"Domain registered as the SES identity","examples":["example.com"]},"mail_from_domain":{"type":"string","title":"Mail From Domain","description":"MAIL FROM subdomain configured for SPF alignment","examples":["mail.example.com"]},"verification_status":{"$ref":"#/components/schemas/EmailIdentityVerificationStatus","description":"Domain (DKIM) verification status","examples":["success"]},"mail_from_status":{"$ref":"#/components/schemas/EmailIdentityVerificationStatus","description":"MAIL FROM domain verification status","examples":["success"]},"dns_records":{"items":{"$ref":"#/components/schemas/DnsRecordDTO"},"type":"array","title":"Dns Records","description":"DNS records the shop owner must publish to verify the identity"},"challenge_verified":{"type":"boolean","title":"Challenge Verified","description":"True iff the shop's DNS sender-ownership challenge TXT record (see dns_records purpose=shop_challenge) is currently published and matches - live-checked on every call","examples":[true]},"verified":{"type":"boolean","title":"Verified","description":"True iff verification_status is SUCCESS.","readOnly":true}},"type":"object","required":["domain","mail_from_domain","verification_status","mail_from_status","dns_records","challenge_verified","verified"],"title":"ShopEmailIdentityResponseDTO","description":"Response payload describing the live SES state of a shop's domain identity."},"ShopEmailIdentitySenderDTO":{"properties":{"sender_email":{"type":"string","format":"email","title":"Sender Email","description":"Verified SES address shop-bound emails will be sent from; its domain must already be a verified SES identity","examples":["notifications@example.com"]}},"type":"object","required":["sender_email"],"title":"ShopEmailIdentitySenderDTO","description":"Payload to activate a shop's verified custom sender address."},"ShopIndustry":{"type":"string","enum":["clothing_and_accessories","electronics","food_and_drink","health_and_beauty","home_and_garden","sports_and_recreation","jewelry_and_accessories","toys_and_games","pet_care","automotive","books_and_media","office_and_business","arts_and_crafts","baby_and_kids","other"],"title":"ShopIndustry","description":"Industry category for a shop, based on Shopify industry list."},"ShopKeysDTO":{"properties":{"brevo":{"type":"string","maxLength":140,"minLength":32,"nullable":true,"title":"Brevo","description":"Key used for the Brevo integration (only last 6 characters will be visible)","examples":["xsmtpsib-*******************************123"]},"klaviyo":{"type":"string","maxLength":64,"minLength":32,"nullable":true,"title":"Klaviyo","description":"Key used for the Klaviyo integration (only last 3 characters will be visible)","examples":["pk_*******************************123"]},"klaviyo_oauth_connected":{"type":"boolean","title":"Klaviyo Oauth Connected","description":"Whether the shop has connected Klaviyo via OAuth (vs the legacy API key). Both auth methods coexist during migration.","default":false},"shopify":{"type":"string","maxLength":64,"minLength":32,"nullable":true,"title":"Shopify","description":"Key used for the Shopify integration (only last 6 characters will be visible)","examples":["shpua_****************************321"]},"shopware":{"$ref":"#/components/schemas/ClientIDAndSecretSchema","nullable":true,"description":"Credentials used for the Shopware integration (only last 6 characters of the secret will be visible)"},"emarsys":{"$ref":"#/components/schemas/ClientIDAndSecretSchema","nullable":true,"description":"Credentials used for the Emarsys integration (only last 6 characters of the secret will be visible)"},"inxmail":{"$ref":"#/components/schemas/BasicAuthDTO","nullable":true,"description":"Credentials used for the Inxmail integration (only last 6 characters of the password will be visible)"},"hubspot":{"type":"string","maxLength":64,"minLength":32,"nullable":true,"title":"Hubspot","description":"Key used for the HubSpot integration (only last 6 characters will be visible)","examples":["pat-na1-*****************************123456"]},"braze":{"type":"string","maxLength":64,"minLength":32,"nullable":true,"title":"Braze","description":"Key used for the Braze integration (only last 6 characters will be visible)","examples":["a1b2c3d4-****-****-****-*******123456"]},"gorgias":{"$ref":"#/components/schemas/EmailApiKeyDTO","nullable":true,"description":"Credentials used for the Gorgias integration (only first 6 and last 3 characters of the api_key will be visible)"},"zendesk":{"$ref":"#/components/schemas/EmailApiKeyDTO","nullable":true,"description":"Credentials used for the Zendesk integration (only first 6 and last 3 characters of the api_key will be visible)"},"dixa":{"type":"string","nullable":true,"title":"Dixa","description":"API token used for the Dixa integration (only first 6 and last 6 characters will be visible)"},"superchat":{"type":"string","nullable":true,"title":"Superchat","description":"API key used for the Superchat integration (only first 6 and last 3 characters will be visible)"},"front":{"type":"string","nullable":true,"title":"Front","description":"API token used for the Front integration (only first 6 and last 3 characters will be visible)"},"intercom":{"type":"string","nullable":true,"title":"Intercom","description":"Private app access token used for the Intercom integration (only first 6 and last 3 characters will be visible)"}},"type":"object","title":"ShopKeysDTO","description":"DTO for shop keys used for its different integrations."},"ShopProductDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shop product UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_provider":{"$ref":"#/components/schemas/ShopProvider","description":"Shop provider"},"product_id":{"type":"string","title":"Product Id","description":"Product ID"},"variant_id":{"type":"string","title":"Variant Id","description":"Variant ID"},"title":{"type":"string","title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"},"price":{"type":"number","nullable":true,"title":"Price","description":"Variant price"},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Variant image URL"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"Variant SKU"},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product URL"},"status":{"type":"string","nullable":true,"title":"Status","description":"Product status"},"translations":{"additionalProperties":{"$ref":"#/components/schemas/ShopProductTranslationSchema-Input"},"propertyNames":{"$ref":"#/components/schemas/LanguageEnum"},"type":"object","nullable":true,"title":"Translations","description":"Translations by language code"}},"type":"object","required":["uuid","shop_slug","shop_provider","product_id","variant_id","title"],"title":"ShopProductDTO","description":"DTO for a shop product variant."},"ShopProductDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Shop product UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"shop_provider":{"$ref":"#/components/schemas/ShopProvider","description":"Shop provider"},"product_id":{"type":"string","title":"Product Id","description":"Product ID"},"variant_id":{"type":"string","title":"Variant Id","description":"Variant ID"},"title":{"type":"string","title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"},"price":{"type":"number","nullable":true,"title":"Price","description":"Variant price"},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Variant image URL"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"Variant SKU"},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product URL"},"status":{"type":"string","nullable":true,"title":"Status","description":"Product status"},"translations":{"additionalProperties":{"$ref":"#/components/schemas/ShopProductTranslationSchema-Output"},"propertyNames":{"$ref":"#/components/schemas/LanguageEnum"},"type":"object","nullable":true,"title":"Translations","description":"Translations by language code"}},"type":"object","required":["uuid","shop_slug","shop_provider","product_id","variant_id","title"],"title":"ShopProductDTO","description":"DTO for a shop product variant."},"ShopProductSchema":{"properties":{"uuid":{"title":"Uuid","description":"Shop product UUID"},"shop_id":{"title":"Shop Id","description":"Shop ID"},"shop_provider":{"description":"Shop provider"},"shop_slug":{"title":"Shop Slug","description":"Shop slug"},"external_product_id":{"title":"External Product Id","description":"External product ID"},"external_variant_id":{"title":"External Variant Id","description":"External variant ID"},"title":{"title":"Title","description":"Product title"},"variant_title":{"title":"Variant Title","description":"Variant title"},"price":{"title":"Price","description":"Variant price"},"image_url":{"title":"Image Url","description":"Variant image URL"},"sku":{"title":"Sku","description":"Variant SKU"},"product_url":{"title":"Product Url","description":"Product URL"},"status":{"title":"Status","description":"Product status"},"category_path":{"title":"Category Path","description":"Product category path"},"inventory_quantity":{"title":"Inventory Quantity","description":"Available inventory across locations"},"inventory_policy":{"title":"Inventory Policy","description":"Whether the variant is sellable at zero stock (deny/continue)"},"translations":{"title":"Translations","description":"Translations by language code"},"external_updated_at":{"title":"External Updated At","description":"Source variant updated_at (UTC, naive) used as write fence"}},"type":"object","required":["uuid","shop_id","shop_provider","shop_slug","external_product_id","external_variant_id","title"],"title":"ShopProductSchema","description":"Shop product schema."},"ShopProductTranslationSchema-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Region-specific product URL"}},"type":"object","title":"ShopProductTranslationSchema","description":"Shop product translation schema."},"ShopProductTranslationSchema-Output":{"properties":{"title":{"title":"Title","description":"Product title"},"variant_title":{"title":"Variant Title","description":"Variant title"},"product_url":{"title":"Product Url","description":"Region-specific product URL"}},"type":"object","title":"ShopProductTranslationSchema","description":"Shop product translation schema."},"ShopProductUpsertRequestDTO":{"properties":{"title":{"type":"string","title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"},"price":{"type":"number","nullable":true,"title":"Price","description":"Variant price"},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Variant image URL"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"Variant SKU"},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product URL"},"product_id":{"type":"string","title":"Product Id","description":"Product ID from shop provider"},"variant_id":{"type":"string","title":"Variant Id","description":"Variant ID from shop provider"},"category_path":{"type":"string","nullable":true,"title":"Category Path","description":"Product category path (e.g. 'Apparel > Clothing > Dresses')"}},"type":"object","required":["title","product_id","variant_id"],"title":"ShopProductUpsertRequestDTO","description":"Request DTO for upserting a shop product variant via bulk operations.\n\nExtends ShopProductVariantUpdateDTO with IDs needed for\nbulk upsert operations where IDs must come from the request body.\n\nBackend-managed fields (uuid, shop_id, shop_slug, shop_provider)\nare set automatically by the service layer."},"ShopProductVariantUpdateDTO":{"properties":{"title":{"type":"string","title":"Title","description":"Product title"},"variant_title":{"type":"string","nullable":true,"title":"Variant Title","description":"Variant title"},"price":{"type":"number","nullable":true,"title":"Price","description":"Variant price"},"image_url":{"type":"string","nullable":true,"title":"Image Url","description":"Variant image URL"},"sku":{"type":"string","nullable":true,"title":"Sku","description":"Variant SKU"},"product_url":{"type":"string","nullable":true,"title":"Product Url","description":"Product URL"}},"type":"object","required":["title"],"title":"ShopProductVariantUpdateDTO","description":"Base DTO for shop product variant data.\n\nContains the fields that can be updated for a product variant.\nDoes NOT include product_id and variant_id,\nas these are typically provided via URI parameters in RESTful APIs."},"ShopProvider":{"type":"string","enum":["shopware","shopify","woocommerce","api"],"title":"ShopProvider","description":"Enum for identifying the shop provider of a merchant."},"ShopRole":{"properties":{"shop_slug":{"type":"string","title":"Shop Slug","description":"The shop slug - if the slug is an * then it means all shops"},"role":{"$ref":"#/components/schemas/ShopRoleEnum","description":"Scopes used to access the Karla API"}},"type":"object","required":["shop_slug","role"],"title":"ShopRole","description":"Shops that this token has access to."},"ShopRoleEnum":{"type":"string","enum":["admin","editor","viewer"],"title":"ShopRoleEnum","description":"The token permission scopes."},"ShopSettingsDTO-Input":{"properties":{"carriers":{"$ref":"#/components/schemas/CarrierSettingsDTO","description":"Current carrier settings"},"triggers":{"$ref":"#/components/schemas/TriggerSettingsDTO","description":"Current trigger settings"},"segments":{"$ref":"#/components/schemas/SegmentSettingsDTO","description":"Current segment settings"},"brand_palette":{"$ref":"#/components/schemas/BrandPaletteColors-Input","description":"Brand palette colors (uses default values if not customized)"}},"type":"object","required":["carriers","triggers","segments","brand_palette"],"title":"ShopSettingsDTO","description":"The settings object to be exchanged with the HTTP clients.\n\nContains all shop-level configuration settings including:\n- carriers: Shipment tracking aggregator settings\n- triggers: Third-party integration trigger settings\n- segments: Customer segmentation settings\n- brand_palette: Brand color scheme (returns defaults if not customized)"},"ShopSettingsDTO-Output":{"properties":{"carriers":{"$ref":"#/components/schemas/CarrierSettingsDTO","description":"Current carrier settings"},"triggers":{"$ref":"#/components/schemas/TriggerSettingsDTO","description":"Current trigger settings"},"segments":{"$ref":"#/components/schemas/SegmentSettingsDTO","description":"Current segment settings"},"brand_palette":{"$ref":"#/components/schemas/BrandPaletteColors-Output","description":"Brand palette colors (uses default values if not customized)"}},"type":"object","required":["carriers","triggers","segments","brand_palette"],"title":"ShopSettingsDTO","description":"The settings object to be exchanged with the HTTP clients.\n\nContains all shop-level configuration settings including:\n- carriers: Shipment tracking aggregator settings\n- triggers: Third-party integration trigger settings\n- segments: Customer segmentation settings\n- brand_palette: Brand color scheme (returns defaults if not customized)"},"ShopUpdateDTO":{"properties":{"name":{"type":"string","nullable":true,"title":"Name","description":"Name to display","examples":["Karla"]},"description":{"type":"string","nullable":true,"title":"Description","description":"Shop description dependant on user language","examples":["Karla Shop"]},"organization":{"type":"string","nullable":true,"title":"Organization","description":"Organization the shop belongs to"},"language":{"$ref":"#/components/schemas/LanguageEnum","nullable":true,"description":"Default language for the shop to fallback to in translations","default":"en","examples":["en"]},"contact_email":{"type":"string","nullable":true,"title":"Contact Email","description":"Shop contact email address","examples":["support@example.com"]},"contact_phone":{"type":"string","nullable":true,"title":"Contact Phone","description":"Shop contact phone number","examples":["+49 123 456 7890"]},"industry":{"$ref":"#/components/schemas/ShopIndustry","nullable":true,"description":"Shop industry category"},"shop_provider":{"$ref":"#/components/schemas/ShopProvider","nullable":true,"description":"Shop system provider"},"shop_admin_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Admin Url","description":"URL for API calls to the shop"},"shop_faq_url":{"type":"string","nullable":true,"title":"Shop Faq Url","description":"URL for the FAQ page"},"shop_service_url":{"type":"string","nullable":true,"title":"Shop Service Url","description":"URL for the service page"},"shop_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Shop Url","description":"URL to the main shop"},"logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Logo Url","description":"Merchant logo image URL"}},"type":"object","title":"ShopUpdateDTO","description":"Payload for a partial or full update of a shop."},"ShopUpdateResult":{"properties":{"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug that was updated"},"success":{"type":"boolean","title":"Success","description":"Whether the update was successful"},"error":{"type":"string","nullable":true,"title":"Error","description":"Error message if update failed"}},"type":"object","required":["shop_slug","success"],"title":"ShopUpdateResult","description":"Result of updating a single shop's carrier settings."},"ShopUserInviteDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User email","examples":["test@example.com"]},"role":{"$ref":"#/components/schemas/UserRole","description":"Role for the shop","examples":["viewer"]},"create_org_permission":{"type":"boolean","title":"Create Org Permission","description":"Whether to create organization-level permissions. When False, only shop-specific permissions are created.","default":false}},"type":"object","required":["email","role"],"title":"ShopUserInviteDTO","description":"Shop user invite DTO."},"ShopifyRecommendationImageDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"Image ID"},"src":{"type":"string","nullable":true,"title":"Src","description":"Image URL"},"alt":{"type":"string","nullable":true,"title":"Alt","description":"Image alt text"},"width":{"type":"integer","nullable":true,"title":"Width","description":"Image width"},"height":{"type":"integer","nullable":true,"title":"Height","description":"Image height"}},"type":"object","required":["id"],"title":"ShopifyRecommendationImageDTO","description":"Shopify recommendation image DTO."},"ShopifyRecommendationProductDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"Product ID"},"title":{"type":"string","title":"Title","description":"Product title"},"handle":{"type":"string","title":"Handle","description":"Product handle"},"price":{"type":"integer","title":"Price","description":"Product price"},"price_min":{"type":"integer","title":"Price Min","description":"Minimum price"},"price_max":{"type":"integer","title":"Price Max","description":"Maximum price"},"url":{"type":"string","title":"Url","description":"Product URL"},"featured_image":{"type":"string","nullable":true,"title":"Featured Image"},"variants":{"items":{"$ref":"#/components/schemas/ShopifyRecommendationVariantDTO"},"type":"array","title":"Variants","examples":[[{"available":true,"id":12345678901,"price":2999,"title":"Default Title"},{"available":true,"id":12345678902,"price":3499,"title":"Large"}],[]]},"images":{"items":{"type":"string"},"type":"array","title":"Images"},"media":{"items":{"$ref":"#/components/schemas/ShopifyRecommendationImageDTO"},"type":"array","title":"Media","examples":[[{"alt":"Product Image","height":800,"id":9876543210,"src":"https://cdn.shopify.com/s/files/1/products/product_image.jpg","width":800}],[]]}},"type":"object","required":["id","title","handle","price","price_min","price_max","url"],"title":"ShopifyRecommendationProductDTO","description":"Shopify recommendation product DTO."},"ShopifyRecommendationVariantDTO":{"properties":{"id":{"type":"integer","title":"Id","description":"Variant ID"},"title":{"type":"string","title":"Title","description":"Variant title"},"price":{"type":"integer","title":"Price","description":"Variant price"},"available":{"type":"boolean","title":"Available","description":"Variant availability"}},"type":"object","required":["id","title","price","available"],"title":"ShopifyRecommendationVariantDTO","description":"Shopify recommendation variant DTO."},"ShopifyRecommendationsResponseDTO-Input":{"properties":{"products":{"items":{"$ref":"#/components/schemas/ShopifyRecommendationProductDTO"},"type":"array","title":"Products","examples":[[{"featured_image":"https://cdn.shopify.com/s/files/1/products/coffee_beans.jpg","handle":"organic-coffee-beans","id":7234567890,"images":["https://cdn.shopify.com/s/files/1/products/coffee_beans_1.jpg","https://cdn.shopify.com/s/files/1/products/coffee_beans_2.jpg"],"media":[],"price":2999,"price_max":3499,"price_min":2999,"title":"Organic Coffee Beans","url":"/products/organic-coffee-beans","variants":[]},{"featured_image":"https://cdn.shopify.com/s/files/1/products/mug.jpg","handle":"coffee-mug","id":7234567891,"images":["https://cdn.shopify.com/s/files/1/products/mug.jpg"],"media":[],"price":1599,"price_max":1599,"price_min":1599,"title":"Coffee Mug","url":"/products/coffee-mug","variants":[]}],[]]}},"type":"object","title":"ShopifyRecommendationsResponseDTO","description":"Shopify recommendations response DTO."},"ShopifyRecommendationsResponseDTO-Output":{"properties":{"products":{"items":{"$ref":"#/components/schemas/ShopifyRecommendationProductDTO"},"type":"array","title":"Products","examples":[[{"featured_image":"https://cdn.shopify.com/s/files/1/products/coffee_beans.jpg","handle":"organic-coffee-beans","id":7234567890,"images":["https://cdn.shopify.com/s/files/1/products/coffee_beans_1.jpg","https://cdn.shopify.com/s/files/1/products/coffee_beans_2.jpg"],"media":[],"price":2999,"price_max":3499,"price_min":2999,"title":"Organic Coffee Beans","url":"/products/organic-coffee-beans","variants":[]},{"featured_image":"https://cdn.shopify.com/s/files/1/products/mug.jpg","handle":"coffee-mug","id":7234567891,"images":["https://cdn.shopify.com/s/files/1/products/mug.jpg"],"media":[],"price":1599,"price_max":1599,"price_min":1599,"title":"Coffee Mug","url":"/products/coffee-mug","variants":[]}],[]]}},"type":"object","title":"ShopifyRecommendationsResponseDTO","description":"Shopify recommendations response DTO."},"ShopifySettingsV1-Input":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the shopify integration is enabled","default":"disabled"},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","default":48}},"type":"object","title":"ShopifySettingsV1","description":"Schema for a Shop.ShopifySetting object.\n\nShopify only has status and stale_event_threshold - no triggers or segments."},"ShopifySettingsV1-Output":{"properties":{"status":{"description":"Whether the shopify integration is enabled"},"stale_event_threshold":{"title":"Stale Event Threshold","description":"Stale event threshold in hours"}},"type":"object","title":"ShopifySettingsV1","description":"Schema for a Shop.ShopifySetting object.\n\nShopify only has status and stale_event_threshold - no triggers or segments."},"ShopifyTriggerSettingsDTO":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"stale_event_threshold":{"type":"integer","title":"Stale Event Threshold","description":"Stale event threshold in hours","examples":[48]}},"type":"object","required":["status","stale_event_threshold"],"title":"ShopifyTriggerSettingsDTO","description":"Shopify-specific trigger settings for public API.\n\nNote: Shopify only supports status toggle and stale_event_threshold.\nSegments are always extracted from Shopify customer tags."},"ShopifyTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"stale_event_threshold":{"type":"integer","nullable":true,"title":"Stale Event Threshold","description":"Stale event threshold in hours"}},"type":"object","title":"ShopifyTriggerSettingsUpdateDTO","description":"Shopify-specific trigger settings update for public API."},"ShopifyWebhookCreationDTO":{"properties":{"webhook_type":{"$ref":"#/components/schemas/ShopifyWebhookType","description":"Webhook Type"}},"type":"object","required":["webhook_type"],"title":"ShopifyWebhookCreationDTO","description":"Shopify Webhook object creation request schema."},"ShopifyWebhookDTO":{"properties":{"webhook_type":{"$ref":"#/components/schemas/ShopifyWebhookType","description":"Webhook Type"},"created_at":{"type":"string","format":"date-time","nullable":true,"title":"Created At","description":"Time in which the resource was created","examples":["2024-01-15T10:30:00Z","2023-12-01T08:00:00Z",null]},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Time in which the resource was last updated after creation","examples":["2024-01-16T14:45:00Z","2024-01-15T16:00:00Z",null]},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Webhook UUID"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug for the webhook"},"name":{"type":"string","nullable":true,"title":"Name","description":"Name of the webhook"},"shopify_id":{"type":"integer","nullable":true,"title":"Shopify Id","description":"Shopify Webhook ID"},"topic":{"$ref":"#/components/schemas/ShopifyWebhookTopic","description":"Webhook Topic"},"hook_url":{"type":"string","title":"Hook Url","description":"Webhook URL"},"fields":{"items":{"type":"string"},"type":"array","nullable":true,"title":"Fields","description":"Optional inclusive fields filter"}},"type":"object","required":["webhook_type","uuid","shop_slug","name","topic","hook_url"],"title":"ShopifyWebhookDTO","description":"Shopify Webhook object schema."},"ShopifyWebhookTopic":{"type":"string","enum":["orders/create","orders/fulfilled","orders/partially_fulfilled","orders/updated","fulfillments/update","orders/cancelled","orders/delete","products/create","products/update","products/delete"],"title":"ShopifyWebhookTopic","description":"Type of Shopify webhook topic.\n\nSee https://shopify.dev/docs/api/webhooks?reference=toml#list-of-topics"},"ShopifyWebhookType":{"type":"string","enum":["order-creation","order-fulfillment","order-partial-fulfillment","order-update","order-cancelled","order-deletion","order-fulfillment-update","product-creation","product-update","product-deletion"],"title":"ShopifyWebhookType","description":"The type of Shopify Webhooks supported (exposed by Karla via API)."},"StepUserInput":{"properties":{"step_id":{"type":"string","title":"Step Id","description":"Unique identifier for the step","examples":["question"]},"user_input":{"$ref":"#/components/schemas/UserInput-Input","description":"User input for the step","examples":[{"input_type":"selected_answer","input_value":"yes"}]}},"type":"object","required":["step_id","user_input"],"title":"StepUserInput","description":"User input for a step in the claim process."},"SubscriptionTier":{"type":"string","enum":["free","enterprise"],"title":"SubscriptionTier","description":"Subscription tier for a shop, derived from carrier settings."},"SuperchatSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"channel_id":{"type":"string","title":"Channel Id","description":"Superchat mail channel id new conversations are opened on (e.g. 'mc_...'), from GET /channels filtered to type 'mail'","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"User id to assign new conversations to. Unset → leave unassigned for Superchat's own inbox routing"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"SuperchatSettingsV1","description":"Schema for a Shop.SuperchatSetting object.\n\nLike the other helpdesk integrations, Superchat carries only status plus the\nrouting values it needs and does not participate in the shipment-event\nnotification pipeline. Superchat has no per-tenant subdomain (a single\nglobal API), so it is gated on ``channel_id``.\n\n``channel_id`` must be a **mail** channel. Superchat's WhatsApp channels only\nallow free-form outbound within 24 hours of an inbound customer message, and\na claim is always merchant-initiated - so a WhatsApp claim ticket would\nessentially always fall outside that window and require a pre-approved Meta\ntemplate, which cannot carry a rendered claim body. Mail channels have no\nsuch window."},"SuperchatTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"channel_id":{"type":"string","title":"Channel Id","description":"Superchat mail channel id (e.g. 'mc_123')","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"User id to assign new conversations to; absent → unassigned"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"SuperchatTriggerSettingsDTO","description":"Superchat-specific trigger settings for public API.\n\nSuperchat has no tenant subdomain (a single global API), so it is\nconfigured with the mail channel id new conversations are opened on and an\noptional agent to assign them to. The channel MUST be a mail channel:\nWhatsApp channels only allow free-form outbound within 24 hours of an\ninbound customer message, and claims are always merchant-initiated, so a\nWhatsApp claim would essentially always fall outside that window."},"SuperchatTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"channel_id":{"type":"string","title":"Channel Id","description":"Superchat mail channel id (e.g. 'mc_123')","default":""},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"User id to assign new conversations to; absent → unassigned"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"SuperchatTriggerSettingsDTO","description":"Superchat-specific trigger settings for public API.\n\nSuperchat has no tenant subdomain (a single global API), so it is\nconfigured with the mail channel id new conversations are opened on and an\noptional agent to assign them to. The channel MUST be a mail channel:\nWhatsApp channels only allow free-form outbound within 24 hours of an\ninbound customer message, and claims are always merchant-initiated, so a\nWhatsApp claim would essentially always fall outside that window."},"SuperchatTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"channel_id":{"type":"string","nullable":true,"title":"Channel Id","description":"Superchat mail channel id; absent → unchanged"},"default_agent_id":{"type":"string","nullable":true,"title":"Default Agent Id","description":"User id to assign new conversations to; absent → unchanged"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"SuperchatTriggerSettingsUpdateDTO","description":"Superchat-specific trigger settings update for public API."},"SurveyWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"link":{"type":"string","nullable":true,"title":"Link","description":"Survey link URL"}},"type":"object","title":"SurveyWidgetDTO","description":"Configuration for the survey widget."},"TaxLineSchema":{"properties":{"currency":{"type":"string","nullable":true,"title":"Currency","description":"Currency of the tax line","examples":["EUR","USD","GBP",null]},"price":{"type":"number","nullable":true,"title":"Price","description":"Price of the tax line","examples":[5.7,2.99,15.0,null]},"rate":{"type":"number","nullable":true,"title":"Rate","description":"Rate of the tax line","examples":[0.19,0.07,0.21,null]},"title":{"type":"string","nullable":true,"title":"Title","description":"Title of the tax line","examples":["VAT 19%","Reduced VAT 7%","Sales Tax",null]}},"type":"object","title":"TaxLineSchema","description":"Schema for a tax line."},"ThresholdType":{"type":"string","enum":["latest_event_time","created_at"],"title":"ThresholdType","description":"Enum for the threshold type."},"TopApprovalDTO":{"properties":{"approved_by":{"type":"string","title":"Approved By","description":"Email/username of the approver"},"approval_count":{"type":"integer","title":"Approval Count","description":"Number of mappings approved by this person this week"},"latest_approval_at":{"type":"string","format":"date-time","title":"Latest Approval At","description":"Timestamp of their most recent approval"}},"type":"object","required":["approved_by","approval_count","latest_approval_at"],"title":"TopApprovalDTO","description":"DTO for top approver."},"TopApprovalsResponseDTO":{"properties":{"top_approvals":{"items":{"$ref":"#/components/schemas/TopApprovalDTO"},"type":"array","title":"Top Approvals","description":"List of top approvers this week"},"total_count":{"type":"integer","title":"Total Count","description":"Total number of results returned"},"period_start":{"type":"string","format":"date-time","title":"Period Start","description":"Start of the 7-day period (7 days ago)"},"period_end":{"type":"string","format":"date-time","title":"Period End","description":"End of the period (now)"}},"type":"object","required":["top_approvals","total_count","period_start","period_end"],"title":"TopApprovalsResponseDTO","description":"Response DTO for top approvers this week."},"TrackingCompanyInsightDTO":{"properties":{"tracking_company":{"type":"string","title":"Tracking Company","description":"Tracking company name from Shopify"},"shipment_count":{"type":"integer","title":"Shipment Count","description":"Number of fulfillments"}},"type":"object","required":["tracking_company","shipment_count"],"title":"TrackingCompanyInsightDTO","description":"A tracking company with its shipment count."},"TrackingCompanyInsightsResponseDTO":{"properties":{"status":{"type":"string","title":"Status","description":"processing, ready, or error"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug"},"months":{"type":"integer","title":"Months","description":"Number of months of data analyzed"},"oldest_order_date":{"type":"string","nullable":true,"title":"Oldest Order Date","description":"Created-at of the oldest order in the result set"},"newest_order_date":{"type":"string","nullable":true,"title":"Newest Order Date","description":"Created-at of the newest order in the result set"},"countries":{"items":{"$ref":"#/components/schemas/CountryInsightDTO"},"type":"array","title":"Countries","description":"Destination countries with tracking company breakdown"},"total_shipments":{"type":"integer","title":"Total Shipments","description":"Total fulfillments in the analyzed period","default":0}},"type":"object","required":["status","shop_slug","months"],"title":"TrackingCompanyInsightsResponseDTO","description":"Response DTO for shop tracking company and destination insights."},"TrackingDTO-Input":{"properties":{"uuid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Uuid","description":"Shipment UUID"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Tracking last updated time"},"events":{"items":{"$ref":"#/components/schemas/TrackingEventDTO-Input"},"type":"array","title":"Events","description":"Shipment tracking events. See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events)","examples":[[{"event_key":"H10","event_name":"DELIVERED","event_strings":{"event_status":"Yippee! Your parcel was successfully delivered.","header_headline":"DELIVERED","header_subtitle":"","header_title":"Home","list_label":"Delivered: 2024-01-15T11:20:27+00:00"},"language":"en","location":{"city":"Berlin","country":"DE","zip":"10115"},"phase":"delivered","time":"2024-01-15T10:00:00+00:00","timezone":"Europe/Berlin"},{"event_key":"C20","event_name":"DISPATCHED_FROM_ORIGIN","event_strings":{"event_status":"Your parcel info was sent to DHL.","header_headline":"DISPATCHED","header_subtitle":"","header_title":"DHL received your order","list_label":"Dispatched"},"language":"en","location":{"city":"Berlin","country":"DE"},"phase":"order_processed","time":"2024-01-16T08:30:00+00:00","timezone":"Europe/Berlin"}]]},"estimated_arrival":{"$ref":"#/components/schemas/TrackingEstimatedArrivalDTO-Input","nullable":true,"description":"Expected delivery time information for the given locale","examples":[{"language":"en","time_prediction":"Tomorrow"},{"language":"de","time_prediction":"Today"},null]},"carrier":{"$ref":"#/components/schemas/CarrierDTO","nullable":true,"description":"Carrier data"},"flag":{"$ref":"#/components/schemas/FlagEnum","description":"Karla shipment flag","default":"normal"},"pickup":{"$ref":"#/components/schemas/TrackingPickUpDTO-Input","nullable":true,"description":"Pickup data"},"products":{"items":{"$ref":"#/components/schemas/ProductSchema-Input"},"type":"array","title":"Products","description":"List of shipment products","default":[]},"direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"Shipment direction: `merchant_customer` (outbound to customer), `customer_merchant` (return from customer), `customer_partner` (customer to partner), `partner_customer` (partner to customer)","default":"merchant_customer","examples":["merchant_customer","customer_merchant","customer_partner","partner_customer"]},"is_return":{"type":"boolean","nullable":true,"title":"Is Return","description":"Indicates whether this is a return shipment","examples":[true,false,null]},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Id","description":"Shipment UUID (DEPRECATED, use uuid instead)"},"merchant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Merchant Id","description":"Merchant UUID (DEPRECATED)"},"merchant_slug":{"type":"string","title":"Merchant Slug","description":"Merchant slug identifier (DEPRECATED, use shop_slug instead)"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug identifier"},"order_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Order Id","description":"Order identifier within Karla"},"order_number":{"type":"string","title":"Order Number","description":"Order number communicated to the user by the Merchant"}},"type":"object","required":["uuid","events","id","merchant_id","merchant_slug","shop_slug","order_id","order_number"],"title":"TrackingDTO","description":"Tracking information with its relevant shipment events."},"TrackingDTO-Output":{"properties":{"uuid":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Uuid","description":"Shipment UUID"},"updated_at":{"type":"string","nullable":true,"title":"Updated At","description":"Tracking last updated time"},"events":{"items":{"$ref":"#/components/schemas/TrackingEventDTO-Output"},"type":"array","title":"Events","description":"Shipment tracking events. See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events)","examples":[[{"event_key":"H10","event_name":"DELIVERED","event_strings":{"event_status":"Yippee! Your parcel was successfully delivered.","header_headline":"DELIVERED","header_subtitle":"","header_title":"Home","list_label":"Delivered: 2024-01-15T11:20:27+00:00"},"language":"en","location":{"city":"Berlin","country":"DE","zip":"10115"},"phase":"delivered","time":"2024-01-15T10:00:00+00:00","timezone":"Europe/Berlin"},{"event_key":"C20","event_name":"DISPATCHED_FROM_ORIGIN","event_strings":{"event_status":"Your parcel info was sent to DHL.","header_headline":"DISPATCHED","header_subtitle":"","header_title":"DHL received your order","list_label":"Dispatched"},"language":"en","location":{"city":"Berlin","country":"DE"},"phase":"order_processed","time":"2024-01-16T08:30:00+00:00","timezone":"Europe/Berlin"}]]},"estimated_arrival":{"$ref":"#/components/schemas/TrackingEstimatedArrivalDTO-Output","nullable":true,"description":"Expected delivery time information for the given locale","examples":[{"language":"en","time_prediction":"Tomorrow"},{"language":"de","time_prediction":"Today"},null]},"carrier":{"$ref":"#/components/schemas/CarrierDTO","nullable":true,"description":"Carrier data"},"flag":{"$ref":"#/components/schemas/FlagEnum","description":"Karla shipment flag","default":"normal"},"pickup":{"$ref":"#/components/schemas/TrackingPickUpDTO-Output","nullable":true,"description":"Pickup data"},"products":{"items":{"$ref":"#/components/schemas/ProductSchema-Output"},"type":"array","title":"Products","description":"List of shipment products","default":[]},"direction":{"$ref":"#/components/schemas/ShipmentDirectionEnum","description":"Shipment direction: `merchant_customer` (outbound to customer), `customer_merchant` (return from customer), `customer_partner` (customer to partner), `partner_customer` (partner to customer)","default":"merchant_customer","examples":["merchant_customer","customer_merchant","customer_partner","partner_customer"]},"is_return":{"type":"boolean","nullable":true,"title":"Is Return","description":"Indicates whether this is a return shipment","examples":[true,false,null]},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Id","description":"Shipment UUID (DEPRECATED, use uuid instead)"},"merchant_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Merchant Id","description":"Merchant UUID (DEPRECATED)"},"merchant_slug":{"type":"string","title":"Merchant Slug","description":"Merchant slug identifier (DEPRECATED, use shop_slug instead)"},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug identifier"},"order_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Order Id","description":"Order identifier within Karla"},"order_number":{"type":"string","title":"Order Number","description":"Order number communicated to the user by the Merchant"}},"type":"object","required":["uuid","events","id","merchant_id","merchant_slug","shop_slug","order_id","order_number"],"title":"TrackingDTO","description":"Tracking information with its relevant shipment events."},"TrackingEstimatedArrivalDTO-Input":{"properties":{"from":{"type":"string","format":"date-time","nullable":true,"title":"From","description":"Start date for the ETA range (same as end if a range is not provided)"},"to":{"type":"string","format":"date-time","nullable":true,"title":"To","description":"Expected Delivery To"},"time_prediction":{"type":"string","title":"Time Prediction","description":"Estimated time of arrival for the shipment"},"language":{"$ref":"#/components/schemas/LanguageEnum","description":"The locale of the language"},"source":{"type":"string","nullable":true,"title":"Source","description":"Public-facing source of the estimated delivery time. Values: 'carrier' (from shipping carrier), 'AI' (AI prediction), 'custom' (manual/custom entry), 'order' (from order data)","examples":["carrier","AI","custom","order"]}},"type":"object","required":["time_prediction","language"],"title":"TrackingEstimatedArrivalDTO","description":"Event strings for a specific language as defined in the language files."},"TrackingEstimatedArrivalDTO-Output":{"properties":{"from":{"type":"string","nullable":true,"title":"From","description":"Start date for the ETA range (same as end if a range is not provided)"},"to":{"type":"string","nullable":true,"title":"To","description":"Expected Delivery To"},"time_prediction":{"type":"string","title":"Time Prediction","description":"Estimated time of arrival for the shipment"},"language":{"$ref":"#/components/schemas/LanguageEnum","description":"The locale of the language"},"source":{"type":"string","nullable":true,"title":"Source","description":"Public-facing source of the estimated delivery time. Values: 'carrier' (from shipping carrier), 'AI' (AI prediction), 'custom' (manual/custom entry), 'order' (from order data)","examples":["carrier","AI","custom","order"]}},"type":"object","required":["time_prediction","language"],"title":"TrackingEstimatedArrivalDTO","description":"Event strings for a specific language as defined in the language files."},"TrackingEventDTO-Input":{"properties":{"event_key":{"type":"string","title":"Event Key","description":"Internal event code. DEPRECATED: use `event_name` instead, which is the documented, stable vocabulary for shipment events. This field will be removed in API v2.","deprecated":true,"examples":["H10","C20","A12","A10"]},"time":{"type":"string","format":"date-time","nullable":true,"title":"Time","description":"Event Time","examples":["2024-01-15T14:30:00Z","2024-01-16T09:15:00Z",null]},"timezone":{"type":"string","nullable":true,"title":"Timezone","description":"Event Timezone","examples":["Europe/Berlin","America/New_York","UTC",null]},"location":{"additionalProperties":true,"type":"object","nullable":true,"title":"Location","description":"Event Location","examples":[{"city":"Berlin","country":"DE","zip":"10115"},{"city":"Hamburg","country":"DE","state":"Hamburg"},null]},"additional_info":{"$ref":"#/components/schemas/EventAdditionalInfo","nullable":true,"description":"Event Additional Info","examples":[{"carrier_name":"dhl","mail_message":"Package ready for pickup","merchant_name":"Example Shop","pickup_opening_hours":{"Mon-Fri":"00:00-24:00","Sat-Sun":"00:00-24:00"},"pickup_point":"DHL Packstation 123","pickup_point_url":"https://www.dhl.de/packstation/123","pickup_time":"2024-01-20T18:00:00+00:00","preferred_delivery_date":"2024-01-18T12:00:00","tracking_company":"DHL","tracking_link":"https://www.dhl.de/track?piececode=00340434298376542088"},{"carrier_name":"hermes","mail_message":"Delivery attempted - recipient not at home","tracking_company":"Hermes"},null]},"phase":{"$ref":"#/components/schemas/PhaseEnum","description":"Phase of the shipment"},"event_name":{"type":"string","title":"Event Name","description":"Shipment event name.<br>See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events) for more details.<br><details><summary>Possible values</summary>- `ACCEPTED_BY_DESTINATION_OFFICE`<br>- `ACCEPTED_BY_ORIGIN_OFFICE`<br>- `ARRIVAL_AT_FINAL_DELIVERY_CENTER`<br>- `ARRIVAL_AT_TRANSPORT_HUB`<br>- `ARRIVAL_IN_DESTINATION_COUNTRY`<br>- `ARRIVED_AT_COMMUNITY_BOX`<br>- `ARRIVED_AT_PARCEL_LOCKER`<br>- `ARRIVED_AT_PARCEL_SHOP`<br>- `ARRIVED_AT_PICKUP_POINT`<br>- `ARRIVED_AT_POST_OFFICE`<br>- `ARRIVED_AT_SORTING_CENTER`<br>- `ASSIGNED_TO_TRANSPORT`<br>- `ATTEMPTED_DELIVERY_UNDELIVERABLE`<br>- `AT_SORTING_CENTER`<br>- `AT_TRANSPORT_HUB`<br>- `CARRIER_UNKNOWN`<br>- `COMPLETION_OF_CUSTOMS_PROCESSING`<br>- `COMPLETION_OF_EXPORT_PROCESSING`<br>- `CUSTOMS_PROCESSING`<br>- `DELAY_EXPECTED`<br>- `DELAY_IN_TRANSPORT`<br>- `DELAY_IN_TRANSPORT_MISROUTED_SHIPMENT`<br>- `DELAY_IN_TRANSPORT_OFFLOADED_SHIPMENT`<br>- `DELIVERY_ATTEMPTED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_MOVED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_NOT_KNOWN_AT_ADDRESS`<br>- `DELIVERY_ATTEMPTED_ADDRESS_COULD_NOT_BE_FOUND`<br>- `DELIVERY_ATTEMPTED_CASH_ON_DELIVERY_AMOUNT_NOT_READY`<br>- `DELIVERY_ATTEMPTED_FAILED_WILL_TRY_AGAIN`<br>- `DELIVERY_ATTEMPTED_FORWARDING_TO_PICKUP_LOCATION`<br>- `DELIVERY_ATTEMPTED_LAST_ATTEMPT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME_CARD_LEFT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_VERIFICATION_UNSUCCESSFUL`<br>- `DELIVERY_ATTEMPTED_REJECTED_BY_ADDRESSEE`<br>- `DELIVERY_FAILED_SHIPMENT_DESTROYED`<br>- `DELIVERY_LAPSED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_LOCKER`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_SHOP`<br>- `DELIVERY_OPTION_ALTERNATE_TIME_REQUESTED`<br>- `DELIVERY_OPTION_REQUESTED_BY_RECEIVER`<br>- `DELIVERY_SCHEDULED_IN_THE_FINAL_DELIVERY_DEPOT`<br>- `DEPARTURE_FROM_TRANSPORT_HUB`<br>- `DISPATCHED_FROM_DELIVERY_CENTER`<br>- `DISPATCHED_FROM_FORWARDING_DEPOT`<br>- `DISPATCHED_FROM_SORTING_CENTER`<br>- `DISPATCHING_STARTED_AT_PROCESSING_CENTER`<br>- `ENCODING_COMPLETED_AT_PROCESSING_CENTER`<br>- `ENCODING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `ENCODING_STARTED_AT_PROCESSING_CENTER`<br>- `ERROR_IN_PARCEL_DATA_SUBMISSION`<br>- `ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `EXPORT_PROCESSING`<br>- `FAILED_TO_HAND_OVER_TO_DELIVERY_PARTNER`<br>- `HANDED_OVER_TO_DELIVERY_PARTNER`<br>- `HELD_AT_CUSTOMS`<br>- `HELD_AT_CUSTOMS_FOR_ADDITIONAL_PAYMENT`<br>- `HELD_AT_CUSTOMS_FOR_CLARIFICATIONS`<br>- `HELD_AT_EXPORT_PROCESSING`<br>- `INBOUND_FLIGHT_ARRIVED`<br>- `INBOUND_TRUCK_ARRIVED`<br>- `IN_DELIVERY`<br>- `ISSUES_IN_PROCESSING_BY_CUSTOMS_AUTHORITIES`<br>- `MISSING_SHIPMENT_INFORMATION`<br>- `MORE_INFO_ON_CARRIER_WEBSITE`<br>- `NOTIFICATION_SENT_TO_RECIPIENT`<br>- `NO_DELIVERY_ATTEMPT_ON_ROUTE`<br>- `ORDER_CANCELLED`<br>- `ORDER_CREATED`<br>- `ORDER_DELAYED`<br>- `ORDER_IN_PROCESSING`<br>- `ORDER_PROCESSED`<br>- `OUTBOUND_FLIGHT_DEPARTED`<br>- `OUTBOUND_TRUCK_DEPARTED`<br>- `OUT_FOR_DELIVERY`<br>- `PACKAGE_REROUTING_CANCELED_ROUTE_TO_HOME`<br>- `PARCEL_COLLECTED_FROM_DROP_OFF_LOCATION`<br>- `PARCEL_DATA_SUBMISSION_DELAYED`<br>- `PARCEL_DATA_SUBMITTED_TO_CARRIER`<br>- `PARCEL_DISPATCHED`<br>- `PARCEL_DROPPED_OFF_AT_PARCEL_LOCKER`<br>- `PARCEL_DROPPED_OFF_AT_POST_OFFICE`<br>- `PARCEL_DROPPED_OFF_IN_PARCEL_SHOP`<br>- `PARCEL_DROPPED_OFF_OVER_THE_COUNTER`<br>- `PARCEL_DROPPED_OFF_WITH_CARRIER`<br>- `PARCEL_READY_FOR_PICKUP`<br>- `PARCEL_TRANSFERRED_TO_THIRD_PARTY`<br>- `PARTIAL_DELIVERY`<br>- `PATCHED`<br>- `PICKUP_ATTEMPTED`<br>- `PICKUP_DELAYED`<br>- `PICKUP_FAILED`<br>- `PICKUP_SUCCESSFUL`<br>- `PROCEEDING_TO_CARRIER_FACILITY`<br>- `PROCESSED_AT_DELIVERY_CENTER`<br>- `PROCESSING_AT_TRANSPORT_HUB`<br>- `RECEIPT_AT_FORWARDING_DEPOT`<br>- `REJECTED_BY_CARRIER`<br>- `RETURNED_TO_DELIVERY_DEPOT`<br>- `RETURN_IN_PROGRESS`<br>- `RETURN_TO_ORIGIN_COUNTRY_CANCELLED`<br>- `RETURN_TO_ORIGIN_COUNTRY_COMPLETED`<br>- `RETURN_TO_ORIGIN_COUNTRY_FAILED`<br>- `RETURN_TO_SENDER_COMPLETED`<br>- `RETURN_TO_SENDER_FAILED`<br>- `RETURN_TO_SENDER_FAILED_RECIPIENT_VERIFICATION`<br>- `RETURN_TO_SENDER_FAILED_SERVICE_ERROR`<br>- `SCANNED_AT_PROCESSING_CENTER`<br>- `SHIPMENT_AT_FINAL_DELIVERY_CENTER`<br>- `SHIPMENT_CANCELLED`<br>- `SHIPMENT_DAMAGED`<br>- `SHIPMENT_DELAYED_DUE_TO_CUSTOMER_REQUEST`<br>- `SHIPMENT_EN_ROUTE`<br>- `SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER`<br>- `SHIPMENT_LOST`<br>- `SHIPMENT_LOST_IN_DELIVERY`<br>- `SHIPMENT_LOST_IN_PROCESSING`<br>- `SHIPMENT_LOST_IN_SORTING_CENTER`<br>- `SHIPMENT_LOST_IN_TRANSIT`<br>- `SHIPMENT_LOST_IN_TRANSPORT`<br>- `SHIPMENT_LOST_UNKNOWN_REASON`<br>- `SHIPMENT_MISROUTED`<br>- `SHIPMENT_MISSING`<br>- `SHIPMENT_NEVER_ARRIVED`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_ON_HOLD_IN_DELIVERY_CENTER`<br>- `SHIPMENT_ON_ITS_WAY_TO_PICKUP_LOCATION`<br>- `SHIPMENT_REJECTED_RETURNING_TO_SENDER`<br>- `SHIPMENT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_RETURNED_TO_SENDER`<br>- `SHIPMENT_RETURNING_TO_SENDER`<br>- `SHIPMENT_SUCCESSFULLY_RETURNED_TO_SENDER`<br>- `SHIPMENT_UPDATED_ETA`<br>- `SHIPMENT_UPDATED_PICKUP`<br>- `SHIPPING_INFORMATION_UPDATED`<br>- `SORTING_COMPLETED_AT_PROCESSING_CENTER`<br>- `SORTING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `SORTING_STARTED_AT_PROCESSING_CENTER`<br>- `START_OF_CUSTOMS_PROCESSING`<br>- `START_OF_EXPORT_PROCESSING`<br>- `SUCCESSFULLY_COLLECTED`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_LOCKER`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_SHOP`<br>- `SUCCESSFULLY_COLLECTED_AT_POST_OFFICE`<br>- `SUCCESSFULLY_DELIVERED`<br>- `SUCCESSFULLY_DELIVERED_AND_CASH_ON_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_DOOR`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_LETTER_BOX`<br>- `SUCCESSFULLY_DELIVERED_AND_PROOF_OF_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_TO_NEIGHBOR`<br>- `SUCCESSFULLY_DELIVERED_TO_THE_COMMUNITY_MAILBOX`<br>- `TRANSPORT_ARRIVED`<br>- `TRANSPORT_DEPARTED`<br>- `USER_SUCCESSFULLY_DELIVERED`<br></details>"},"event_strings":{"$ref":"#/components/schemas/TrackingEventKeyTranslationsDTO","nullable":true,"description":"Event translation strings"},"language":{"$ref":"#/components/schemas/LanguageEnum","description":"The locale of the language for the event"}},"type":"object","required":["event_key","phase","event_name","language"],"title":"TrackingEventDTO","description":"Event information for the delivery of a shipment.\n\nSee [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events)\nfor more information about events."},"TrackingEventDTO-Output":{"properties":{"event_key":{"title":"Event Key","description":"Internal event code. DEPRECATED: use `event_name` instead, which is the documented, stable vocabulary for shipment events. This field will be removed in API v2.","deprecated":true,"examples":["H10","C20","A12","A10"]},"time":{"type":"string","nullable":true,"title":"Time","description":"Event Time","examples":["2024-01-15T14:30:00Z","2024-01-16T09:15:00Z",null]},"timezone":{"title":"Timezone","description":"Event Timezone","examples":["Europe/Berlin","America/New_York","UTC",null]},"location":{"title":"Location","description":"Event Location","examples":[{"city":"Berlin","country":"DE","zip":"10115"},{"city":"Hamburg","country":"DE","state":"Hamburg"},null]},"additional_info":{"description":"Event Additional Info","examples":[{"carrier_name":"dhl","mail_message":"Package ready for pickup","merchant_name":"Example Shop","pickup_opening_hours":{"Mon-Fri":"00:00-24:00","Sat-Sun":"00:00-24:00"},"pickup_point":"DHL Packstation 123","pickup_point_url":"https://www.dhl.de/packstation/123","pickup_time":"2024-01-20T18:00:00+00:00","preferred_delivery_date":"2024-01-18T12:00:00","tracking_company":"DHL","tracking_link":"https://www.dhl.de/track?piececode=00340434298376542088"},{"carrier_name":"hermes","mail_message":"Delivery attempted - recipient not at home","tracking_company":"Hermes"},null]},"phase":{"description":"Phase of the shipment"},"event_name":{"title":"Event Name","description":"Shipment event name.<br>See [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events) for more details.<br><details><summary>Possible values</summary>- `ACCEPTED_BY_DESTINATION_OFFICE`<br>- `ACCEPTED_BY_ORIGIN_OFFICE`<br>- `ARRIVAL_AT_FINAL_DELIVERY_CENTER`<br>- `ARRIVAL_AT_TRANSPORT_HUB`<br>- `ARRIVAL_IN_DESTINATION_COUNTRY`<br>- `ARRIVED_AT_COMMUNITY_BOX`<br>- `ARRIVED_AT_PARCEL_LOCKER`<br>- `ARRIVED_AT_PARCEL_SHOP`<br>- `ARRIVED_AT_PICKUP_POINT`<br>- `ARRIVED_AT_POST_OFFICE`<br>- `ARRIVED_AT_SORTING_CENTER`<br>- `ASSIGNED_TO_TRANSPORT`<br>- `ATTEMPTED_DELIVERY_UNDELIVERABLE`<br>- `AT_SORTING_CENTER`<br>- `AT_TRANSPORT_HUB`<br>- `CARRIER_UNKNOWN`<br>- `COMPLETION_OF_CUSTOMS_PROCESSING`<br>- `COMPLETION_OF_EXPORT_PROCESSING`<br>- `CUSTOMS_PROCESSING`<br>- `DELAY_EXPECTED`<br>- `DELAY_IN_TRANSPORT`<br>- `DELAY_IN_TRANSPORT_MISROUTED_SHIPMENT`<br>- `DELAY_IN_TRANSPORT_OFFLOADED_SHIPMENT`<br>- `DELIVERY_ATTEMPTED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_MOVED`<br>- `DELIVERY_ATTEMPTED_ADDRESSEE_NOT_KNOWN_AT_ADDRESS`<br>- `DELIVERY_ATTEMPTED_ADDRESS_COULD_NOT_BE_FOUND`<br>- `DELIVERY_ATTEMPTED_CASH_ON_DELIVERY_AMOUNT_NOT_READY`<br>- `DELIVERY_ATTEMPTED_FAILED_WILL_TRY_AGAIN`<br>- `DELIVERY_ATTEMPTED_FORWARDING_TO_PICKUP_LOCATION`<br>- `DELIVERY_ATTEMPTED_LAST_ATTEMPT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_NOT_AT_HOME_CARD_LEFT`<br>- `DELIVERY_ATTEMPTED_RECIPIENT_VERIFICATION_UNSUCCESSFUL`<br>- `DELIVERY_ATTEMPTED_REJECTED_BY_ADDRESSEE`<br>- `DELIVERY_FAILED_SHIPMENT_DESTROYED`<br>- `DELIVERY_LAPSED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_LOCKER`<br>- `DELIVERY_OPTION_ALTERNATE_LOCATION_REQUESTED_SHOP`<br>- `DELIVERY_OPTION_ALTERNATE_TIME_REQUESTED`<br>- `DELIVERY_OPTION_REQUESTED_BY_RECEIVER`<br>- `DELIVERY_SCHEDULED_IN_THE_FINAL_DELIVERY_DEPOT`<br>- `DEPARTURE_FROM_TRANSPORT_HUB`<br>- `DISPATCHED_FROM_DELIVERY_CENTER`<br>- `DISPATCHED_FROM_FORWARDING_DEPOT`<br>- `DISPATCHED_FROM_SORTING_CENTER`<br>- `DISPATCHING_STARTED_AT_PROCESSING_CENTER`<br>- `ENCODING_COMPLETED_AT_PROCESSING_CENTER`<br>- `ENCODING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `ENCODING_STARTED_AT_PROCESSING_CENTER`<br>- `ERROR_IN_PARCEL_DATA_SUBMISSION`<br>- `ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `EXPORT_PROCESSING`<br>- `FAILED_TO_HAND_OVER_TO_DELIVERY_PARTNER`<br>- `HANDED_OVER_TO_DELIVERY_PARTNER`<br>- `HELD_AT_CUSTOMS`<br>- `HELD_AT_CUSTOMS_FOR_ADDITIONAL_PAYMENT`<br>- `HELD_AT_CUSTOMS_FOR_CLARIFICATIONS`<br>- `HELD_AT_EXPORT_PROCESSING`<br>- `INBOUND_FLIGHT_ARRIVED`<br>- `INBOUND_TRUCK_ARRIVED`<br>- `IN_DELIVERY`<br>- `ISSUES_IN_PROCESSING_BY_CUSTOMS_AUTHORITIES`<br>- `MISSING_SHIPMENT_INFORMATION`<br>- `MORE_INFO_ON_CARRIER_WEBSITE`<br>- `NOTIFICATION_SENT_TO_RECIPIENT`<br>- `NO_DELIVERY_ATTEMPT_ON_ROUTE`<br>- `ORDER_CANCELLED`<br>- `ORDER_CREATED`<br>- `ORDER_DELAYED`<br>- `ORDER_IN_PROCESSING`<br>- `ORDER_PROCESSED`<br>- `OUTBOUND_FLIGHT_DEPARTED`<br>- `OUTBOUND_TRUCK_DEPARTED`<br>- `OUT_FOR_DELIVERY`<br>- `PACKAGE_REROUTING_CANCELED_ROUTE_TO_HOME`<br>- `PARCEL_COLLECTED_FROM_DROP_OFF_LOCATION`<br>- `PARCEL_DATA_SUBMISSION_DELAYED`<br>- `PARCEL_DATA_SUBMITTED_TO_CARRIER`<br>- `PARCEL_DISPATCHED`<br>- `PARCEL_DROPPED_OFF_AT_PARCEL_LOCKER`<br>- `PARCEL_DROPPED_OFF_AT_POST_OFFICE`<br>- `PARCEL_DROPPED_OFF_IN_PARCEL_SHOP`<br>- `PARCEL_DROPPED_OFF_OVER_THE_COUNTER`<br>- `PARCEL_DROPPED_OFF_WITH_CARRIER`<br>- `PARCEL_READY_FOR_PICKUP`<br>- `PARCEL_TRANSFERRED_TO_THIRD_PARTY`<br>- `PARTIAL_DELIVERY`<br>- `PATCHED`<br>- `PICKUP_ATTEMPTED`<br>- `PICKUP_DELAYED`<br>- `PICKUP_FAILED`<br>- `PICKUP_SUCCESSFUL`<br>- `PROCEEDING_TO_CARRIER_FACILITY`<br>- `PROCESSED_AT_DELIVERY_CENTER`<br>- `PROCESSING_AT_TRANSPORT_HUB`<br>- `RECEIPT_AT_FORWARDING_DEPOT`<br>- `REJECTED_BY_CARRIER`<br>- `RETURNED_TO_DELIVERY_DEPOT`<br>- `RETURN_IN_PROGRESS`<br>- `RETURN_TO_ORIGIN_COUNTRY_CANCELLED`<br>- `RETURN_TO_ORIGIN_COUNTRY_COMPLETED`<br>- `RETURN_TO_ORIGIN_COUNTRY_FAILED`<br>- `RETURN_TO_SENDER_COMPLETED`<br>- `RETURN_TO_SENDER_FAILED`<br>- `RETURN_TO_SENDER_FAILED_RECIPIENT_VERIFICATION`<br>- `RETURN_TO_SENDER_FAILED_SERVICE_ERROR`<br>- `SCANNED_AT_PROCESSING_CENTER`<br>- `SHIPMENT_AT_FINAL_DELIVERY_CENTER`<br>- `SHIPMENT_CANCELLED`<br>- `SHIPMENT_DAMAGED`<br>- `SHIPMENT_DELAYED_DUE_TO_CUSTOMER_REQUEST`<br>- `SHIPMENT_EN_ROUTE`<br>- `SHIPMENT_INFO_SENT_TO_LAST_MILE_SERVICE_PROVIDER`<br>- `SHIPMENT_LOST`<br>- `SHIPMENT_LOST_IN_DELIVERY`<br>- `SHIPMENT_LOST_IN_PROCESSING`<br>- `SHIPMENT_LOST_IN_SORTING_CENTER`<br>- `SHIPMENT_LOST_IN_TRANSIT`<br>- `SHIPMENT_LOST_IN_TRANSPORT`<br>- `SHIPMENT_LOST_UNKNOWN_REASON`<br>- `SHIPMENT_MISROUTED`<br>- `SHIPMENT_MISSING`<br>- `SHIPMENT_NEVER_ARRIVED`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_DEPOT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_LOCKER_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_PARCEL_SHOP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_FROM_POST_OFFICE_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_BASE`<br>- `SHIPMENT_NOT_PICKED_UP_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_ON_HOLD_IN_DELIVERY_CENTER`<br>- `SHIPMENT_ON_ITS_WAY_TO_PICKUP_LOCATION`<br>- `SHIPMENT_REJECTED_RETURNING_TO_SENDER`<br>- `SHIPMENT_RETURNED_TO_ORIGIN_COUNTRY`<br>- `SHIPMENT_RETURNED_TO_SENDER`<br>- `SHIPMENT_RETURNING_TO_SENDER`<br>- `SHIPMENT_SUCCESSFULLY_RETURNED_TO_SENDER`<br>- `SHIPMENT_UPDATED_ETA`<br>- `SHIPMENT_UPDATED_PICKUP`<br>- `SHIPPING_INFORMATION_UPDATED`<br>- `SORTING_COMPLETED_AT_PROCESSING_CENTER`<br>- `SORTING_ERROR_IN_PROCESSING_AT_SORTING_CENTER`<br>- `SORTING_STARTED_AT_PROCESSING_CENTER`<br>- `START_OF_CUSTOMS_PROCESSING`<br>- `START_OF_EXPORT_PROCESSING`<br>- `SUCCESSFULLY_COLLECTED`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_LOCKER`<br>- `SUCCESSFULLY_COLLECTED_AT_PARCEL_SHOP`<br>- `SUCCESSFULLY_COLLECTED_AT_POST_OFFICE`<br>- `SUCCESSFULLY_DELIVERED`<br>- `SUCCESSFULLY_DELIVERED_AND_CASH_ON_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_DOOR`<br>- `SUCCESSFULLY_DELIVERED_AND_LEFT_AT_LETTER_BOX`<br>- `SUCCESSFULLY_DELIVERED_AND_PROOF_OF_DELIVERY_COLLECTED`<br>- `SUCCESSFULLY_DELIVERED_TO_NEIGHBOR`<br>- `SUCCESSFULLY_DELIVERED_TO_THE_COMMUNITY_MAILBOX`<br>- `TRANSPORT_ARRIVED`<br>- `TRANSPORT_DEPARTED`<br>- `USER_SUCCESSFULLY_DELIVERED`<br></details>"},"event_strings":{"description":"Event translation strings"},"language":{"description":"The locale of the language for the event"}},"type":"object","required":["event_key","phase","event_name","language"],"title":"TrackingEventDTO","description":"Event information for the delivery of a shipment.\n\nSee [Shipment Events](https://docs.gokarla.io/docs/api/entities/shipment#shipment-events)\nfor more information about events."},"TrackingEventKeyTranslationsDTO":{"properties":{"event_status":{"type":"string","title":"Event Status","description":"Event status translation"},"list_label":{"type":"string","title":"List Label","description":"Event list label translation"},"header_headline":{"type":"string","title":"Header Headline","description":"Event header headline translation"},"header_title":{"type":"string","title":"Header Title","description":"Event header title translation"},"header_subtitle":{"type":"string","title":"Header Subtitle","description":"Event header subtitle translation"}},"type":"object","required":["event_status","list_label","header_headline","header_title","header_subtitle"],"title":"TrackingEventKeyTranslationsDTO","description":"Tracking event strings for a specific language as defined in its lang files."},"TrackingEventsWidgetDTO":{"properties":{"colors":{"$ref":"#/components/schemas/WidgetColorSchemeDTO","nullable":true,"description":"Color scheme using brand palette references"},"show_order_number":{"type":"boolean","nullable":true,"title":"Show Order Number","description":"Whether to show the order number"},"show_powered_by_karla":{"type":"boolean","nullable":true,"title":"Show Powered By Karla","description":"Whether to show 'Powered by Karla' branding"},"disable_delay_alert":{"type":"boolean","nullable":true,"title":"Disable Delay Alert","description":"Whether to disable delay alerts"}},"type":"object","title":"TrackingEventsWidgetDTO","description":"Configuration for the tracking-events widget."},"TrackingPickUpDTO-Input":{"properties":{"type":{"$ref":"#/components/schemas/PickUpTypeEnum","nullable":true,"description":"PickUp type"},"name":{"type":"string","title":"Name","description":"PickUp name"},"address":{"$ref":"#/components/schemas/AddressDTO-Input","nullable":true,"description":"PickUp address"},"url":{"type":"string","nullable":true,"title":"Url","description":"PickUp url"},"opening_hours":{"type":"string","nullable":true,"title":"Opening Hours","description":"PickUp opening hours"},"date_to":{"type":"string","format":"date-time","nullable":true,"title":"Date To","description":"PickUp date to"}},"type":"object","required":["name"],"title":"TrackingPickUpDTO","description":"PickUp information for the delivery of a shipment."},"TrackingPickUpDTO-Output":{"properties":{"type":{"$ref":"#/components/schemas/PickUpTypeEnum","nullable":true,"description":"PickUp type"},"name":{"type":"string","title":"Name","description":"PickUp name"},"address":{"$ref":"#/components/schemas/AddressDTO-Output","nullable":true,"description":"PickUp address"},"url":{"type":"string","nullable":true,"title":"Url","description":"PickUp url"},"opening_hours":{"type":"string","nullable":true,"title":"Opening Hours","description":"PickUp opening hours"},"date_to":{"type":"string","nullable":true,"title":"Date To","description":"PickUp date to"}},"type":"object","required":["name"],"title":"TrackingPickUpDTO","description":"PickUp information for the delivery of a shipment."},"TrackingSchema-Input":{"properties":{"events":{"items":{"$ref":"#/components/schemas/Event"},"type":"array","nullable":true,"title":"Events","description":"Shipment tracking events","examples":[[{"event_key":"H10","time":"2024-01-15T10:00:00+00:00","timezone":"Europe/Berlin"},{"event_key":"C20","location":{"city":"Berlin","country":"DE"},"time":"2024-01-16T08:30:00+00:00","timezone":"Europe/Berlin"},{"event_key":"A10","location":{"city":"Munich","country":"DE","zip":"80331"},"time":"2024-01-17T14:15:00+00:00","timezone":"Europe/Berlin"}],null]},"expected_delivery":{"anyOf":[{"$ref":"#/components/schemas/api__schema__shipment__ExpectedDelivery"},{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Expected Delivery","description":"Expected delivery data","examples":[{"end":"2024-01-18T18:00:00+00:00","source":"pp","start":"2024-01-18T08:00:00+00:00","updated_at":"2024-01-15T14:30:00+00:00"},null]},"additional_info":{"$ref":"#/components/schemas/AdditionalInfo","nullable":true,"description":"Event Additional Info","examples":[{"carrier_name":"dhl","mail_message":"Package delivered to pickup point","merchant_name":"Coffee Shop Berlin","pickup_opening_hours":{"Mon-Fri":"06:00-22:00","Sat":"08:00-20:00"},"pickup_point":"DHL Packstation 456","pickup_point_url":"https://www.dhl.de/packstation/456","pickup_time":"2024-01-25T20:00:00+00:00","preferred_delivery_date":"2024-01-18T00:00:00","tracking_company":"DHL Paket","tracking_link":"https://www.dhl.de/track?piececode=12345678901234567890"},{"carrier_name":"hermes","mail_message":"Package out for delivery","tracking_link":"https://tracking.hermes.de/123456789"},null]},"pickup_location":{"additionalProperties":true,"type":"object","nullable":true,"title":"Pickup Location","description":"Pickup Location data"}},"type":"object","title":"TrackingSchema","description":"Schema for a `Tracking` partial for the Karla `Shipment` object.\n\nThis partial can represent **Any** Tracking DataSource."},"TrackingSchema-Output":{"properties":{"events":{"title":"Events","description":"Shipment tracking events","examples":[[{"event_key":"H10","time":"2024-01-15T10:00:00+00:00","timezone":"Europe/Berlin"},{"event_key":"C20","location":{"city":"Berlin","country":"DE"},"time":"2024-01-16T08:30:00+00:00","timezone":"Europe/Berlin"},{"event_key":"A10","location":{"city":"Munich","country":"DE","zip":"80331"},"time":"2024-01-17T14:15:00+00:00","timezone":"Europe/Berlin"}],null]},"expected_delivery":{"title":"Expected Delivery","description":"Expected delivery data","examples":[{"end":"2024-01-18T18:00:00+00:00","source":"pp","start":"2024-01-18T08:00:00+00:00","updated_at":"2024-01-15T14:30:00+00:00"},null]},"additional_info":{"description":"Event Additional Info","examples":[{"carrier_name":"dhl","mail_message":"Package delivered to pickup point","merchant_name":"Coffee Shop Berlin","pickup_opening_hours":{"Mon-Fri":"06:00-22:00","Sat":"08:00-20:00"},"pickup_point":"DHL Packstation 456","pickup_point_url":"https://www.dhl.de/packstation/456","pickup_time":"2024-01-25T20:00:00+00:00","preferred_delivery_date":"2024-01-18T00:00:00","tracking_company":"DHL Paket","tracking_link":"https://www.dhl.de/track?piececode=12345678901234567890"},{"carrier_name":"hermes","mail_message":"Package out for delivery","tracking_link":"https://tracking.hermes.de/123456789"},null]},"pickup_location":{"title":"Pickup Location","description":"Pickup Location data"}},"type":"object","title":"TrackingSchema","description":"Schema for a `Tracking` partial for the Karla `Shipment` object.\n\nThis partial can represent **Any** Tracking DataSource."},"TrackpageTokenRequestDTO":{"properties":{"id":{"type":"string","title":"Id","description":"Order identifier (order number, external ID, UUID, or order name)"},"id_type":{"$ref":"#/components/schemas/OrderReferenceType","description":"Type of order identifier","default":"order_number"}},"type":"object","required":["id"],"title":"TrackpageTokenRequestDTO","description":"Request DTO for generating a trackpage token."},"TrackpageTokenResponseDTO":{"properties":{"token":{"type":"string","title":"Token","description":"HMAC-SHA256 token for the trackpage URL"},"url":{"type":"string","title":"Url","description":"Complete trackpage URL with token"}},"type":"object","required":["token","url"],"title":"TrackpageTokenResponseDTO","description":"Response DTO for a trackpage token."},"TrackpagesBorderRadiusDTO":{"properties":{"widget_corner_px":{"type":"integer","enum":[2,4,6,8,12,16,24,32],"nullable":true,"title":"Widget Corner Px","description":"Border radius for widgets in pixels","examples":[12]},"button_corner_px":{"type":"integer","enum":[2,4,6,8,12,16,24,32],"nullable":true,"title":"Button Corner Px","description":"Border radius for buttons in pixels","examples":[8]}},"type":"object","title":"TrackpagesBorderRadiusDTO","description":"Border radius configuration for trackpages."},"TrackpagesFontDTO":{"properties":{"font":{"type":"string","title":"Font","description":"Font family name (system font fallback if unavailable)","examples":["Inter","Roboto","Sombra"]}},"type":"object","required":["font"],"title":"TrackpagesFontDTO","description":"Font configuration for trackpages."},"TrackpagesMetadataDTO":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Page title","examples":["Track Your Order"]},"description":{"type":"string","nullable":true,"title":"Description","description":"Page meta description","examples":["Track your package delivery status"]},"icons":{"type":"string","nullable":true,"title":"Icons","description":"Favicon URL or path","examples":["/favicon.ico"]}},"type":"object","title":"TrackpagesMetadataDTO","description":"Page metadata configuration for trackpages."},"TrackpagesThemeDTO":{"properties":{"theme":{"type":"string","enum":["theme_1","theme_2"],"title":"Theme","description":"The theme to apply to the tracking page","examples":["theme_1"]}},"type":"object","required":["theme"],"title":"TrackpagesThemeDTO","description":"Theme selection for trackpages."},"TriggerSettingsDTO":{"properties":{"klaviyo":{"type":"boolean","title":"Klaviyo","description":"Karla to Klaviyo triggers status","examples":[true]},"shopify":{"type":"boolean","title":"Shopify","description":"Karla to Shopify triggers status"},"emarsys":{"type":"boolean","title":"Emarsys","description":"Karla to Emarsys triggers status","examples":[true]},"brevo":{"type":"boolean","title":"Brevo","description":"Karla to Brevo triggers status","examples":[true]},"inxmail":{"type":"boolean","title":"Inxmail","description":"Karla to Inxmail triggers status","examples":[true]},"braze":{"type":"boolean","title":"Braze","description":"Karla to Braze triggers status","examples":[true]},"hubspot":{"type":"boolean","title":"Hubspot","description":"Karla to HubSpot triggers status","examples":[true]}},"type":"object","required":["klaviyo","shopify","emarsys","brevo","inxmail","braze","hubspot"],"title":"TriggerSettingsDTO","description":"The trigger settings object to be exchanged with the HTTP clients."},"TriggerSettingsUpdateDTO":{"properties":{"klaviyo":{"type":"boolean","nullable":true,"title":"Klaviyo","description":"Toggle sending triggers to Klaviyo","examples":[true]},"shopify":{"type":"boolean","nullable":true,"title":"Shopify","description":"Toggle sending triggers to Shopify"},"emarsys":{"type":"boolean","nullable":true,"title":"Emarsys","description":"Toggle sending triggers to Emarsys","examples":[true]},"brevo":{"type":"boolean","nullable":true,"title":"Brevo","description":"Toggle sending triggers to Brevo","examples":[true]},"inxmail":{"type":"boolean","nullable":true,"title":"Inxmail","description":"Toggle sending triggers to Inxmail","examples":[true]},"braze":{"type":"boolean","nullable":true,"title":"Braze","description":"Toggle sending triggers to Braze","examples":[true]},"hubspot":{"type":"boolean","nullable":true,"title":"Hubspot","description":"Toggle sending triggers to HubSpot","examples":[true]}},"type":"object","title":"TriggerSettingsUpdateDTO","description":"The trigger settings update object to be exchanged with the HTTP clients."},"TriggerSettingsV1-Input":{"properties":{"klaviyo":{"$ref":"#/components/schemas/KlaviyoSettingsV1-Input"},"shopify":{"$ref":"#/components/schemas/ShopifySettingsV1-Input"},"emarsys":{"$ref":"#/components/schemas/EmarsysSettingsV1","nullable":true},"brevo":{"$ref":"#/components/schemas/BrevoSettingsV1","nullable":true},"inxmail":{"$ref":"#/components/schemas/InxmailSettingsV1","nullable":true},"braze":{"$ref":"#/components/schemas/BrazeSettingsV1","nullable":true},"hubspot":{"$ref":"#/components/schemas/HubSpotSettingsV1","nullable":true},"gorgias":{"$ref":"#/components/schemas/GorgiasSettingsV1","nullable":true},"zendesk":{"$ref":"#/components/schemas/ZendeskSettingsV1","nullable":true},"dixa":{"$ref":"#/components/schemas/DixaSettingsV1","nullable":true},"front":{"$ref":"#/components/schemas/FrontSettingsV1","nullable":true},"intercom":{"$ref":"#/components/schemas/IntercomSettingsV1","nullable":true},"superchat":{"$ref":"#/components/schemas/SuperchatSettingsV1","nullable":true},"email_helpdesk":{"$ref":"#/components/schemas/EmailHelpdeskSettingsV1","nullable":true},"claim_resolution":{"$ref":"#/components/schemas/ClaimResolutionSettingsV1","nullable":true}},"type":"object","required":["klaviyo","shopify"],"title":"TriggerSettingsV1","description":"Schema for a Shop.TriggerSetting object."},"TriggerSettingsV1-Output":{"properties":{"klaviyo":{},"shopify":{},"emarsys":{},"brevo":{},"inxmail":{},"braze":{},"hubspot":{},"gorgias":{},"zendesk":{},"dixa":{},"front":{},"intercom":{},"superchat":{},"email_helpdesk":{},"claim_resolution":{}},"type":"object","required":["klaviyo","shopify"],"title":"TriggerSettingsV1","description":"Schema for a Shop.TriggerSetting object."},"UpdateDealDTO":{"properties":{"discount_id":{"type":"string","format":"uuid","nullable":true,"title":"Discount Id","description":"Discount UUID"},"brand_image_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Brand Image Url","description":"Brand image URL"},"brand_logo_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Brand Logo Url","description":"Brand logo URL"},"cta_url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Cta Url","description":"CTA URL"},"title":{"type":"string","nullable":true,"title":"Title","description":"Title"},"description":{"type":"string","nullable":true,"title":"Description","description":"Description"},"translations":{"items":{"$ref":"#/components/schemas/DealTranslations-Input"},"type":"array","nullable":true,"title":"Translations","description":"Translations"}},"type":"object","title":"UpdateDealDTO","description":"Update deal DTO."},"UpdateMappingRequestDTO":{"properties":{"event_key":{"type":"string","nullable":true,"title":"Event Key","description":"Event key to map to (e.g., H10, E10). Set to approve mapping."},"message":{"type":"string","nullable":true,"title":"Message","description":"Event message (null for partial, text for full, regex pattern for regex)"},"match_type":{"$ref":"#/components/schemas/MatchType","nullable":true,"description":"Match type: full (exact message), partial (no message), or regex (pattern)"},"status":{"$ref":"#/components/schemas/MappingStatus","nullable":true,"description":"Mapping status (pending/approved/rejected)"},"updated_by":{"type":"string","title":"Updated By","description":"Username/email of the person making the update"},"reason":{"type":"string","nullable":true,"title":"Reason","description":"Optional reason for rejection or status change"},"confirm":{"type":"boolean","title":"Confirm","description":"If true, confirms and executes the operation. If false (default), returns a preview of affected mappings without executing (dry-run mode).","default":false}},"type":"object","required":["updated_by"],"title":"UpdateMappingRequestDTO","description":"Request DTO for updating a mapping (approve, reject, or modify)."},"UserByEmailDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User email","examples":["test@example.com"]}},"type":"object","required":["email"],"title":"UserByEmailDTO","description":"User by email DTO."},"UserCreationDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User email","examples":["test@example.com"]},"name":{"type":"string","nullable":true,"title":"Name","description":"User name","examples":["John Doe"]},"picture":{"type":"string","nullable":true,"title":"Picture","description":"User picture","examples":["https://example.com/picture.png"]},"is_super_admin":{"type":"boolean","title":"Is Super Admin","description":"Whether the user is a super admin","default":false},"org_permissions":{"items":{"$ref":"#/components/schemas/UserOrgPermissionDTO"},"type":"array","title":"Org Permissions","description":"User organization permissions","default":[],"examples":[[{"org_slug":"my-org","role":"viewer"}]]},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","description":"Whether the user has opted in to the newsletter","default":false},"consultation_opt_in":{"type":"boolean","title":"Consultation Opt In","description":"Whether the user has opted in to the consultation","default":false},"create_org_permission":{"type":"boolean","title":"Create Org Permission","description":"Whether to create organization-level permissions via SSO. When False, SSO auto-provisioning is disabled.","default":false}},"type":"object","required":["email"],"title":"UserCreationDTO","description":"User creation DTO."},"UserDTO-Input":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"User UUID","examples":["123e4567-e89b-12d3-a456-426614174000"]},"email":{"type":"string","title":"Email","description":"User email","examples":["test@example.com"]},"name":{"type":"string","nullable":true,"title":"Name","description":"User name","examples":["John Doe"]},"picture":{"type":"string","nullable":true,"title":"Picture","description":"User picture","examples":["https://example.com/picture.png"]},"is_super_admin":{"type":"boolean","title":"Is Super Admin","description":"Whether the user is a super admin","default":false},"org_permissions":{"items":{"$ref":"#/components/schemas/UserOrgPermissionDTO"},"type":"array","title":"Org Permissions","description":"Organizations the user has access to","default":[],"examples":[[{"org_slug":"my-org","role":"viewer"}]]},"shop_permissions":{"items":{"$ref":"#/components/schemas/UserShopPermissionDTO"},"type":"array","title":"Shop Permissions","description":"Shops the user has access to. Either generated from the organization permissions (inherited) or granted specifically (specific).","default":[],"examples":[[{"role":"viewer","shop_slug":"my-shop"}]]},"last_login_at":{"type":"string","format":"date-time","nullable":true,"title":"Last Login At","description":"User last login timestamp","examples":["2021-01-01T12:00:00Z"]},"invitation_status":{"$ref":"#/components/schemas/UserInvitationStatus","nullable":true,"description":"User invitation status","examples":["pending"]},"feature_community":{"$ref":"#/components/schemas/FeatureCommunity","description":"The feature community the user belongs to","examples":["live"]},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","description":"Whether the user has opted in to the newsletter","default":false},"consultation_opt_in":{"type":"boolean","title":"Consultation Opt In","description":"Whether the user has opted in to the consultation","default":false}},"type":"object","required":["uuid","email","feature_community"],"title":"UserDTO","description":"User response DTO."},"UserDTO-Output":{"properties":{"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"User UUID","examples":["123e4567-e89b-12d3-a456-426614174000"]},"email":{"type":"string","title":"Email","description":"User email","examples":["test@example.com"]},"name":{"type":"string","nullable":true,"title":"Name","description":"User name","examples":["John Doe"]},"picture":{"type":"string","nullable":true,"title":"Picture","description":"User picture","examples":["https://example.com/picture.png"]},"is_super_admin":{"type":"boolean","title":"Is Super Admin","description":"Whether the user is a super admin","default":false},"org_permissions":{"items":{"$ref":"#/components/schemas/UserOrgPermissionDTO"},"type":"array","title":"Org Permissions","description":"Organizations the user has access to","default":[],"examples":[[{"org_slug":"my-org","role":"viewer"}]]},"shop_permissions":{"items":{"$ref":"#/components/schemas/UserShopPermissionDTO"},"type":"array","title":"Shop Permissions","description":"Shops the user has access to. Either generated from the organization permissions (inherited) or granted specifically (specific).","default":[],"examples":[[{"role":"viewer","shop_slug":"my-shop"}]]},"last_login_at":{"type":"string","format":"date-time","nullable":true,"title":"Last Login At","description":"User last login timestamp","examples":["2021-01-01T12:00:00Z"]},"invitation_status":{"$ref":"#/components/schemas/UserInvitationStatus","nullable":true,"description":"User invitation status","examples":["pending"]},"feature_community":{"$ref":"#/components/schemas/FeatureCommunity","description":"The feature community the user belongs to","examples":["live"]},"newsletter_opt_in":{"type":"boolean","title":"Newsletter Opt In","description":"Whether the user has opted in to the newsletter","default":false},"consultation_opt_in":{"type":"boolean","title":"Consultation Opt In","description":"Whether the user has opted in to the consultation","default":false}},"type":"object","required":["uuid","email","feature_community"],"title":"UserDTO","description":"User response DTO."},"UserInput-Input":{"properties":{"input_type":{"$ref":"#/components/schemas/UserInputType","description":"User input for the claim","examples":["selected_answer"]},"input_value":{"type":"string","title":"Input Value","description":"Value written by the user or id if the user selected an answer depending on input type","examples":["yes"]},"translated_question":{"type":"string","nullable":true,"title":"Translated Question","description":"Question translated to the shop's language","examples":["Was the product packaging damaged upon arrival?"]},"translated_answer":{"type":"string","nullable":true,"title":"Translated Answer","description":"Answer translated to the shop's language (if answer is selected by the user)","examples":["Yes, it was damaged"]}},"type":"object","required":["input_type","input_value"],"title":"UserInput","description":"User input for a claim."},"UserInput-Output":{"properties":{"input_type":{"description":"User input for the claim","examples":["selected_answer"]},"input_value":{"title":"Input Value","description":"Value written by the user or id if the user selected an answer depending on input type","examples":["yes"]},"translated_question":{"title":"Translated Question","description":"Question translated to the shop's language","examples":["Was the product packaging damaged upon arrival?"]},"translated_answer":{"title":"Translated Answer","description":"Answer translated to the shop's language (if answer is selected by the user)","examples":["Yes, it was damaged"]}},"type":"object","required":["input_type","input_value"],"title":"UserInput","description":"User input for a claim."},"UserInputType":{"type":"string","enum":["selected_answer","user_answer"],"title":"UserInputType","description":"Enum for order reference types."},"UserInvitationStatus":{"type":"string","enum":["pending","accepted"],"title":"UserInvitationStatus","description":"User invitation status."},"UserInviteCreationDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"Email of the user to invite","examples":["test@example.com"]},"org_permissions":{"items":{"$ref":"#/components/schemas/UserOrgPermissionDTO"},"type":"array","title":"Org Permissions","description":"Organization permissions to grant to the user","default":[],"examples":[[{"org_slug":"my-org","role":"viewer"}]]},"is_super_admin":{"type":"boolean","title":"Is Super Admin","description":"Whether the user is a super admin","default":false},"create_org_permission":{"type":"boolean","title":"Create Org Permission","description":"Whether to create organization-level permissions via SSO. When False, SSO auto-provisioning is disabled.","default":false}},"type":"object","required":["email"],"title":"UserInviteCreationDTO","description":"User invitation DTO."},"UserOrgPermissionDTO":{"properties":{"org_slug":{"type":"string","title":"Org Slug","description":"Organization slug","examples":["my-org"]},"role":{"$ref":"#/components/schemas/UserRole","description":"User role in the organization","examples":["viewer"]}},"type":"object","required":["org_slug","role"],"title":"UserOrgPermissionDTO","description":"User organization permission DTO."},"UserRole":{"type":"string","enum":["admin","editor","viewer"],"title":"UserRole","description":"The token permission scopes."},"UserShopPermissionDTO":{"properties":{"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug","examples":["my-shop"]},"role":{"$ref":"#/components/schemas/UserRole","description":"User role in the shop","examples":["viewer"]}},"type":"object","required":["shop_slug","role"],"title":"UserShopPermissionDTO","description":"User shop permission DTO."},"UserUpdateDTO":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"User email (immutable, required to select the user to update)","examples":["test@example.com"]},"name":{"type":"string","nullable":true,"title":"Name","description":"User name","examples":["John Doe"]},"picture":{"type":"string","nullable":true,"title":"Picture","description":"User picture","examples":["https://example.com/picture.png"]},"is_login":{"type":"boolean","title":"Is Login","description":"Whether the user is logging in","default":false,"examples":[false]},"newsletter_opt_in":{"type":"boolean","nullable":true,"title":"Newsletter Opt In","description":"Whether the user has opted in to the newsletter"},"consultation_opt_in":{"type":"boolean","nullable":true,"title":"Consultation Opt In","description":"Whether the user has opted in to the consultation"}},"type":"object","required":["email"],"title":"UserUpdateDTO","description":"User update DTO."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"ValidationErrorDTO":{"properties":{"loc":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Loc","description":"FastAPI loc validation error field","examples":[["body","email"],"email",null]},"msg":{"type":"string","nullable":true,"title":"Msg","description":"FastAPI msg validation error field","examples":["field required","invalid email format",null]},"field":{"type":"string","nullable":true,"title":"Field","description":"FastAPI field validation error field","examples":["email","order_id",null]},"type":{"type":"string","nullable":true,"title":"Type","description":"FastAPI type validation error field","examples":["value_error","type_error","missing",null]}},"type":"object","title":"ValidationErrorDTO","description":"Unified validation errors schema."},"WebhookCreationDTO":{"properties":{"enabled_events":{"items":{"type":"string"},"type":"array","title":"Enabled Events","description":"The list of events to enable for this endpoint. `['*']` (the default) indicates that all events are enabled.See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details on how to subscribe to our different events.","default":["*"],"examples":[["shipments/in_delivery/DELIVERY_ATTEMPTED","shipments/delivered","claims/created"]]},"secret":{"type":"string","maxLength":64,"minLength":16,"nullable":true,"title":"Secret","description":"The secret used to generate webhook signatures. If undefined, we will generate one for you.See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details on how to validate the webhook request.","examples":["41013bd9-9072-42cd-9902-66da38361be9"]},"description":{"type":"string","nullable":true,"title":"Description","description":"An optional description for the endpoint","examples":[null]},"status":{"$ref":"#/components/schemas/WebhookStatus","description":"The status of the webhook.","default":"active","examples":["active"]},"url":{"type":"string","minLength":1,"format":"uri","title":"Url","description":"The URL of the webhook endpoint","examples":["https://example.com/my-webhook-endpoint"]},"dedup_enabled":{"type":"boolean","title":"Dedup Enabled","description":"Whether shipment events are deduplicated and filtered for staleness before delivery. Enabled by default; disable to receive every raw event. See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details.","default":true,"examples":[true]},"stale_event_threshold":{"type":"integer","maximum":720.0,"minimum":1.0,"title":"Stale Event Threshold","description":"Hours after which a shipment event is considered stale and not delivered. Only applies when `dedup_enabled` is true.","default":24,"examples":[24]}},"type":"object","required":["url"],"title":"WebhookCreationDTO","description":"The Webhook endpoint to be created."},"WebhookDTO":{"properties":{"enabled_events":{"items":{"type":"string"},"type":"array","title":"Enabled Events","description":"The list of events to enable for this endpoint. `['*']` (the default) indicates that all events are enabled.See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details on how to subscribe to our different events.","default":["*"],"examples":[["shipments/in_delivery/DELIVERY_ATTEMPTED","shipments/delivered","claims/created"]]},"secret":{"type":"string","maxLength":64,"minLength":16,"nullable":true,"title":"Secret","description":"The secret used to generate webhook signatures. If undefined, we will generate one for you.See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details on how to validate the webhook request.","examples":["41013bd9-9072-42cd-9902-66da38361be9"]},"description":{"type":"string","nullable":true,"title":"Description","description":"An optional description for the endpoint","examples":[null]},"status":{"$ref":"#/components/schemas/WebhookStatus","description":"The status of the webhook.","default":"active","examples":["active"]},"url":{"type":"string","minLength":1,"format":"uri","title":"Url","description":"The URL of the webhook endpoint","examples":["https://example.com/my-webhook-endpoint"]},"dedup_enabled":{"type":"boolean","title":"Dedup Enabled","description":"Whether shipment events are deduplicated and filtered for staleness before delivery. Enabled by default; disable to receive every raw event. See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details.","default":true,"examples":[true]},"stale_event_threshold":{"type":"integer","maximum":720.0,"minimum":1.0,"title":"Stale Event Threshold","description":"Hours after which a shipment event is considered stale and not delivered. Only applies when `dedup_enabled` is true.","default":24,"examples":[24]},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The date and time the webhook was created","examples":["2021-01-01T00:00:00Z"]},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"The date and time the webhook was last updated","examples":["2021-01-01T00:00:00Z"]},"uuid":{"type":"string","format":"uuid","title":"Uuid","description":"Unique identifier for the webhook","examples":["7022541c-62cd-4de3-9fb2-bfdc74bf7834"]},"shop_slug":{"type":"string","title":"Shop Slug","description":"Shop slug that holds the endpoint"}},"type":"object","required":["url","created_at","updated_at","uuid","shop_slug"],"title":"WebhookDTO","description":"The Announcement object to be exchanged with the HTTP clients."},"WebhookStatus":{"type":"string","enum":["active","inactive"],"title":"WebhookStatus","description":"Webhook Status Type."},"WebhookUpdateDTO":{"properties":{"description":{"type":"string","nullable":true,"title":"Description","description":"An optional description for the endpoint","examples":[null]},"status":{"$ref":"#/components/schemas/WebhookStatus","nullable":true,"description":"The status of the webhook.","examples":["active"]},"url":{"type":"string","minLength":1,"format":"uri","nullable":true,"title":"Url","description":"The URL of the webhook endpoint","examples":["https://example.com/my-webhook-endpoint"]},"dedup_enabled":{"type":"boolean","nullable":true,"title":"Dedup Enabled","description":"Whether shipment events are deduplicated and filtered for staleness before delivery. See [webhooks](https://docs.gokarla.io/docs/triggers/webhooks) for more details.","examples":[true]},"stale_event_threshold":{"type":"integer","maximum":720.0,"minimum":1.0,"nullable":true,"title":"Stale Event Threshold","description":"Hours after which a shipment event is considered stale and not delivered. Only applies when `dedup_enabled` is true.","examples":[24]}},"type":"object","title":"WebhookUpdateDTO","description":"The Webhook endpoint to be updated."},"WidgetColorSchemeDTO":{"properties":{"background":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Background","description":"Background color reference from brand palette"},"text":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Text","description":"Text color reference from brand palette"},"accent":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Accent","description":"Accent color reference (highlights, icons, arrows)"},"button_background":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Button Background","description":"Button background color reference"},"button_text":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Button Text","description":"Button text color reference"},"border":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Border","description":"Border color reference"},"secondary_text":{"type":"string","enum":["primary_dark","primary_light","secondary_dark","secondary_light","background","surface"],"nullable":true,"title":"Secondary Text","description":"Secondary text color reference"}},"type":"object","title":"WidgetColorSchemeDTO","description":"Unified color scheme for widgets using brand palette references."},"WooCommerceWebhookConfigDTO":{"properties":{"delivery_url":{"type":"string","title":"Delivery Url","description":"The webhook delivery URL to configure in WooCommerce","examples":["https://api.gokarla.io/api/woocommerce/orders/hook/create/550e8400-e29b-41d4-a716-446655440000"]},"webhook_secret":{"type":"string","maxLength":68,"minLength":68,"title":"Webhook Secret","description":"The secret to use for HMAC signature verification. This should be entered in the 'Secret' field when creating the webhook in WooCommerce.","examples":["wcs_a1b2c3d4e5f6789abcdef0123456789abcdef0123456789abcdef0123456789"]}},"type":"object","required":["delivery_url","webhook_secret"],"title":"WooCommerceWebhookConfigDTO","description":"DTO for WooCommerce webhook configuration."},"ZendeskSettingsV1":{"properties":{"status":{"$ref":"#/components/schemas/SettingStatus","description":"Whether the integration is enabled","default":"disabled"},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Zendesk tenant subdomain used to build the API base URL https://{subdomain}.zendesk.com","default":""},"brand_id":{"type":"integer","nullable":true,"title":"Brand Id","description":"Zendesk brand id to assign created tickets to; for instances serving multiple brands. Unset → Zendesk's default brand"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template. Unset → route by shipment carrier, then neutral fallback"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"notify_customer":{"type":"boolean","title":"Notify Customer","description":"Email the customer a copy of the claim ticket; False keeps the first comment and agent reply internal so the customer is not copied (a merchant's own Zendesk autoreply trigger is unaffected)","default":true},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","title":"ZendeskSettingsV1","description":"Schema for a Shop.ZendeskSetting object.\n\nHelpdesk integrations only carry status and the tenant subdomain - they\ndo not participate in the shipment-event notification pipeline, so they\nomit the trigger/stale/segment fields the marketing integrations use."},"ZendeskTriggerSettingsDTO-Input":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Zendesk tenant subdomain (e.g., 'acme')","default":""},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"notify_customer":{"type":"boolean","title":"Notify Customer","description":"Email the customer a copy of the claim ticket; False keeps the first comment and agent reply internal so the customer is not copied (a merchant's own Zendesk autoreply trigger is unaffected)","default":true},"brand_id":{"type":"integer","nullable":true,"title":"Brand Id","description":"Zendesk brand id to assign created tickets to; for instances serving multiple brands. Unset → Zendesk's default brand"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"ZendeskTriggerSettingsDTO","description":"Zendesk-specific trigger settings for public API.\n\nNote: helpdesk integrations only expose status and the tenant subdomain."},"ZendeskTriggerSettingsDTO-Output":{"properties":{"status":{"type":"boolean","title":"Status","description":"Integration enabled status","examples":[true]},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","title":"Subdomain","description":"Zendesk tenant subdomain (e.g., 'acme')","default":""},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line for the affidavit PDF"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier; routes the affidavit PDF template"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category shown on the affidavit PDF"},"notify_customer":{"type":"boolean","title":"Notify Customer","description":"Email the customer a copy of the claim ticket; False keeps the first comment and agent reply internal so the customer is not copied (a merchant's own Zendesk autoreply trigger is unaffected)","default":true},"brand_id":{"type":"integer","nullable":true,"title":"Brand Id","description":"Zendesk brand id to assign created tickets to; for instances serving multiple brands. Unset → Zendesk's default brand"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Output"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","title":"Templates","description":"Per-reason ticket overrides; absent reason → shipped default"}},"type":"object","required":["status"],"title":"ZendeskTriggerSettingsDTO","description":"Zendesk-specific trigger settings for public API.\n\nNote: helpdesk integrations only expose status and the tenant subdomain."},"ZendeskTriggerSettingsUpdateDTO":{"properties":{"status":{"type":"boolean","nullable":true,"title":"Status","description":"Integration enabled status"},"subdomain":{"type":"string","pattern":"^$|^[a-z0-9][a-z0-9-]{1,61}[a-z0-9]$","nullable":true,"title":"Subdomain","description":"Zendesk tenant subdomain (e.g., 'acme')"},"sender_address":{"type":"string","nullable":true,"title":"Sender Address","description":"Merchant postal sender line; absent → unchanged"},"main_carrier":{"$ref":"#/components/schemas/AffidavitCarrier","nullable":true,"description":"Merchant's main carrier for affidavit routing; absent → unchanged"},"goods_category":{"type":"string","nullable":true,"title":"Goods Category","description":"Merchant goods category; absent → unchanged"},"notify_customer":{"type":"boolean","nullable":true,"title":"Notify Customer","description":"Email the customer a copy of the claim ticket; False keeps the first comment and agent reply internal; absent → unchanged"},"brand_id":{"type":"integer","nullable":true,"title":"Brand Id","description":"Zendesk brand id to assign created tickets to; for instances serving multiple brands. Unset → Zendesk's default brand; absent → unchanged"},"templates":{"additionalProperties":{"$ref":"#/components/schemas/ClaimTemplateV1-Input"},"propertyNames":{"$ref":"#/components/schemas/ClaimReason"},"type":"object","nullable":true,"title":"Templates","description":"Per-reason ticket overrides; absent → unchanged"}},"type":"object","title":"ZendeskTriggerSettingsUpdateDTO","description":"Zendesk-specific trigger settings update for public API."},"api__schema__parcel_perform__ExpectedDelivery":{"properties":{"from":{"type":"string","nullable":true,"title":"From","description":"The starting date & time of a shipment's expected delivery, if any."},"to":{"type":"string","nullable":true,"title":"To","description":"The ending date & time of a shipment's expected delivery, if any."}},"type":"object","title":"ExpectedDelivery","description":"Expected delivery object schema."},"api__schema__shipment__ExpectedDelivery":{"properties":{"from":{"type":"string","format":"date-time","nullable":true,"title":"From","description":"Expected Delivery From"},"to":{"type":"string","format":"date-time","nullable":true,"title":"To","description":"Expected Delivery To"},"updated_at":{"type":"string","format":"date-time","nullable":true,"title":"Updated At","description":"Expected Delivery last updated time"},"source":{"$ref":"#/components/schemas/ExpectedDeliverySourceEnum","nullable":true,"description":"Expected Delivery source"}},"type":"object","title":"ExpectedDelivery","description":"Schema for a expected delivery."},"upload":{"properties":{"image":{"type":"string","format":"binary","title":"Image","description":"The logo image to upload"}},"type":"object","required":["image"],"title":"Body_v1.shops.images.upload"}},"securitySchemes":{"HTTPBasic":{"type":"http","scheme":"basic"}}},"x-tagGroups":[{"name":"Account","tags":["Shop","Shop Settings","Organization","User"]},{"name":"Order & Shipment","tags":["Order","Shipment","Shipment Event Types","Claim","Product","Returns"]},{"name":"Marketing","tags":["Campaign","Segment","Discount","Deal","Announcement","ABTest","Email Templates","Automations"]},{"name":"Integrations","tags":["Webhook","Shopify","WooCommerce","Carrier"]}]}