{"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","example":"your-shop-slug"},"description":"The shop's unique identifier","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find a campaign related to the given AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The shop's unique identifier","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The shop's unique identifier","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The AB test's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The AB test's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestResponseDTO-Input","nullable":true,"title":"Response V1.Ab Tests.Get"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The shop's unique identifier","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The AB test's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The AB test's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the AB test","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the announcement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the announcement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The announcement's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The announcement's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully deleted an announcement","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The announcement's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The announcement's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The campaign's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The campaign's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully deleted a campaign","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response V1.Campaigns.Delete"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The campaign's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The campaign's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"order_number","in":"path","required":true,"schema":{"type":"string","description":"The order's unique identifier","title":"Order Number","example":"ORD-2024-001"},"description":"The order's unique identifier","example":"ORD-2024-001"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find campaigns related to the given order"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The claim's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved a claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponseDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The claim's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully deleted a claim","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response V1.Claims.Delete"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The claim's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The claim's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find the claim","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Shop not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Shop not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the deal","title":"Deal Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the deal","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Deal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the deal","title":"Deal Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the deal","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted deal"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Deal not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the discount","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the discount","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The discount's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The discount's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully deleted a discount","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The discount's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The discount's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"409":{"description":"Order with unique id already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Order not found when trying to update (no order provided)"},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id given by Karla identifying the order","title":"Order Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The id given by Karla identifying the order","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"order_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The id given by Karla identifying the order","title":"Order Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The id given by Karla identifying the order","example":"123e4567-e89b-12d3-a456-426614174000"},{"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","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The id given by Karla identifying the tracking from the order","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Shop or order not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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","example":"00340434292135100100"},"description":"The tracking number of the shipment to delete","example":"00340434292135100100"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted shipment"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find order or shipment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the org","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the org","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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":"title","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Title"}},{"name":"product_id","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Product Id"}},{"name":"sku","in":"query","required":false,"schema":{"type":"string","nullable":true,"title":"Sku"}}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Product ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Variant ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Product variant retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopProductDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop or variant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Product ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Variant ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Product ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","description":"Variant ID from the shop provider","title":"Variant Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Variant ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Product variant deleted successfully"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"Product ID from the shop provider","title":"Product Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Product ID from the shop provider","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Product deleted successfully"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"product_id","in":"path","required":true,"schema":{"type":"string","description":"The ID of the product to get recommendations for","title":"Product Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the product to get recommendations for","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Product recommendations retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyRecommendationsResponseDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"201":{"description":"Successfully created shipment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShipmentResponseDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"shipment_id","in":"path","required":true,"schema":{"type":"string","description":"Shipment UUID","title":"Shipment Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"Shipment UUID","example":"123e4567-e89b-12d3-a456-426614174000"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The Webhook's UUID","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The Webhook's UUID","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved a shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyWebhookDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The webhook's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{}}}},"204":{"description":"Successfully deleted a shopify webhook"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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":{}}}},"204":{"description":"Successfully deleted a shopify webhook by type"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shopify webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The resource already exists or has conflicting information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully deleted a shop","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopDetailDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved shop billing information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopBillingDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successful Response"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopKeysDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved API keys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeysDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyCreationDTO","description":"API key creation payload."}}}},"responses":{"200":{"description":"Successfully processed operation"},"201":{"description":"Successfully created an API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyCreatedDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"429":{"description":"Rate limit or resource limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"rate_limit_exceeded","message":"Too many requests","type":"api_error","errors":[]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopApiKeyDeletionDTO","description":"API key deletion payload."}}}},"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successful Response"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved shop settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Klaviyo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KlaviyoTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Emarsys trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmarsysTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Brevo trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrevoTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Inxmail trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InxmailTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Braze trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrazeTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved HubSpot trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HubSpotTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/v1/shops/{slug}/settings/triggers/webhook":{"get":{"tags":["Shop Settings"],"summary":"Get Webhook Trigger Settings","description":"Get webhook-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.webhook.get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved webhook trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"patch":{"tags":["Shop Settings"],"summary":"Update Webhook Trigger Settings","description":"Update webhook-specific trigger settings for a shop.","operationId":"v1.shops.settings.triggers.webhook.update","security":[{"HTTPBasic":[]}],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","description":"The slug identifying the shop","title":"Slug","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTriggerSettingsUpdateDTO","description":"The webhook trigger settings to update"}}}},"responses":{"200":{"description":"Successfully updated webhook trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookTriggerSettingsDTO-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved Shopify trigger settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShopifyTriggerSettingsDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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":{"200":{"description":"Successfully processed operation"},"201":{"description":"Successfully created internal trigger","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTrigger-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the internal trigger","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved internal trigger","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalTrigger-Input"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the internal trigger","example":"123e4567-e89b-12d3-a456-426614174000"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The ID of the internal trigger","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted internal trigger"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved trackpages theme","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesThemeDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved border radius settings","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesBorderRadiusDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved page metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesMetadataDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved font setting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackpagesFontDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved tracking events widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackingEventsWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved order summary widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderSummaryWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved basic promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BasicPromotionWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved product promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductPromotionWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved order finder widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderFinderWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved banner promotion widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BannerPromotionWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved notification banner widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationBannerWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved survey widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved deals widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealsWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved reviews widget config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewsWidgetDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully processed operation"},"204":{"description":"Successfully deleted widget configuration"},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find widget configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"user_id","in":"path","required":true,"schema":{"type":"string","description":"The UUID of the user to remove","title":"User Id","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The UUID of the user to remove","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully removed user from shop","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find requested resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"409":{"description":"The requested resource already exists!","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_exists","message":"A shop with that ID already exists","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"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"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop related to the webhook","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The webhook's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully deleted a webhook","content":{"application/json":{"schema":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}},"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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"},{"name":"uuid","in":"path","required":true,"schema":{"type":"string","format":"uuid","description":"The webhook's unique identifier","title":"Uuid","example":"123e4567-e89b-12d3-a456-426614174000"},"description":"The webhook's unique identifier","example":"123e4567-e89b-12d3-a456-426614174000"}],"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":{}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}},"/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","example":"your-shop-slug"},"description":"The slug identifying the shop","example":"your-shop-slug"}],"responses":{"200":{"description":"Successfully retrieved WooCommerce webhook configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WooCommerceWebhookConfigDTO"}}}},"400":{"description":"Invalid request authentication, body or parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Missing or malformed authentication credentials","type":"invalid_request_error","errors":[]}}}},"401":{"description":"Invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_merchant_or_key","message":"Invalid username or API key","type":"invalid_request_error","errors":[]}}}},"403":{"description":"Insufficient rights to the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"insufficient_rights","message":"Valid credentials but insufficient permissions","type":"invalid_request_error","errors":[]}}}},"404":{"description":"Could not find shop","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"shop_not_found","message":"Unable to find shop","type":"invalid_request_error","errors":[]}}}},"422":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"invalid_payload","message":"Validation error","type":"invalid_request_error","errors":[{"loc":["body","email"],"msg":"field required","type":"missing"}]}}}},"500":{"description":"Something went wrong on Karla's end","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorDTO"},"example":{"key":"unexpected","message":"An unexpected error occurred on Karla's servers","type":"api_error","errors":[]}}}}}}}},"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,"minimum":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,"value_type":"percentage"}]},"allocation":{"type":"integer","maximum":100,"minimum":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,"value_type":"percentage"}]},"allocation":{"type":"integer","maximum":100,"minimum":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,"minimum":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":128,"minLength":16,"title":"Api Key","description":"The api key"}},"type":"object","required":["api_key"],"title":"APIKeyDTO","description":"An api key secret."},"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."},"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."},"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."},"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,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10,79,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,1000,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."},"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]}},"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]}},"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,"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,"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]}},"type":"object","required":["product_recommendations_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]}},"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}},"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"}},"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_ecommerce_nl","dhlexp","dhl_old","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","inpost_uk","inpost_pl","inpost_it","mondial_relay","evri","poste_italiane","kuehne-nagel","dsv","ait_usa","ait_uk","colis_prive","dynalogic","correos_es","landmark_global","ppl_cz","karl_juergersen","hellmann"],"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":{"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."},"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":{"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."},"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."},"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"]},"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"]},"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."},"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,"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."},"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,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."},"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"]}},"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","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":"Event Key","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."},"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."},"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"}},"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"}},"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."},"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}},"type":"object","title":"KlaviyoSettingsV1","description":"Schema for a Shop.KlaviyoSetting object.\n\nInherits all fields from BaseIntegrationSettingsV1 without overrides.\nKlaviyo settings use the same defaults as other integrations."},"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"}},"type":"object","title":"KlaviyoSettingsV1","description":"Schema for a Shop.KlaviyoSetting object.\n\nInherits all fields from BaseIntegrationSettingsV1 without overrides.\nKlaviyo settings use the same defaults as other integrations."},"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":[]}},"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":[]}},"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"}},"type":"object","title":"KlaviyoTriggerSettingsUpdateDTO","description":"Klaviyo-specific trigger settings update for public API."},"LanguageEnum":{"type":"string","enum":["cs","da","nl","en","fi","fr","de","gr","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-Input":{"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 line item property to estimated ship date\n    {\"source\": {\"type\": \"line_item_property\", \"key\": \"ETA_start\"},\n     \"target\": \"estimated_ship_date_start\"}"},"MappingRule-Output":{"properties":{"source":{"description":"Where to read the value from"},"target":{"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 line item property to estimated ship date\n    {\"source\": {\"type\": \"line_item_property\", \"key\": \"ETA_start\"},\n     \"target\": \"estimated_ship_date_start\"}"},"MappingSource-Input":{"properties":{"type":{"$ref":"#/components/schemas/MappingSourceType","description":"Source type: 'note_attribute' or 'line_item_property' to match by key, 'note' to extract via regex."},"key":{"type":"string","minLength":1,"nullable":true,"title":"Key","description":"Property or attribute name to match. Required for note_attribute and line_item_property, not allowed for note. Example: 'Zalando Kundennummer' or 'ETA_start'"},"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,"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**line_item_property** — extracts a value from a Shopify line item\nproperty by matching on the property name (key).\n\nExample: ``{\"type\": \"line_item_property\", \"key\": \"ETA_start\"}``\nextracts the value of the line item property named \"ETA_start\".\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' or 'line_item_property' to match by key, 'note' to extract via regex."},"key":{"title":"Key","description":"Property or attribute name to match. Required for note_attribute and line_item_property, not allowed for note. Example: 'Zalando Kundennummer' or 'ETA_start'"},"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**line_item_property** — extracts a value from a Shopify line item\nproperty by matching on the property name (key).\n\nExample: ``{\"type\": \"line_item_property\", \"key\": \"ETA_start\"}``\nextracts the value of the line item property named \"ETA_start\".\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","line_item_property"],"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- line_item_property: Extract value from a Shopify line item property by key."},"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_date_start","estimated_ship_date_end"],"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-Input"},"type":"array","title":"Shopify.Order","description":"Mapping rules for Shopify order context"},"shopify.line_item":{"items":{"$ref":"#/components/schemas/MappingRule-Input"},"type":"array","title":"Shopify.Line Item","description":"Mapping rules for Shopify line item 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.line_item":[{"source":{"key":"ETA_start","type":"line_item_property"},"target":"estimated_ship_date_start"},{"source":{"key":"ETA_end","type":"line_item_property"},"target":"estimated_ship_date_end"}]}]},"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."},"NotificationThirdParty":{"type":"string","enum":["braze","brevo","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]},"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,"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"]]},"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"},"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,"quantity":1,"requires_shipping":true,"sku":"123456","tax_lines":[],"title":"Individual Product","weight":100},{"bundled_products":[{"images":[],"price":10,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Bundled Product"}],"images":[{"src":"https://www.example.com/image.jpg"}],"price":20,"quantity":2,"requires_shipping":true,"sku":"123457","tax_lines":[],"title":"Product Bundle","weight":100}],"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]},"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,"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"]]},"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"},"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,"quantity":1,"requires_shipping":true,"sku":"123456","tax_lines":[],"title":"Individual Product","weight":100},{"bundled_products":[{"images":[],"price":10,"quantity":1,"requires_shipping":true,"tax_lines":[],"title":"Bundled Product"}],"images":[{"src":"https://www.example.com/image.jpg"}],"price":20,"quantity":2,"requires_shipping":true,"sku":"123457","tax_lines":[],"title":"Product Bundle","weight":100}],"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":"2026-03-25T18:46:27.573550Z"}]]}},"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]},"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,"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"]]},"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,"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,"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,"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,"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,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10,79,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,1000,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},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50}],[]]},"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,null]},"discount_price":{"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10,79,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,1000,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},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50}],[]]},"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]},"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,"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]},"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]},"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]}},"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,null]},"discount_price":{"type":"number","nullable":true,"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10,79,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,1000,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},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50}],[]]},"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,null]},"discount_price":{"title":"Discount Price","description":"Discounted price of the product","examples":[25.99,10,79,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,1000,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},{"images":[],"price":3.99,"quantity":2,"requires_shipping":true,"sku":"SPOON-SS","tax_lines":[],"title":"Coffee Spoon","variant_title":"Stainless Steel","weight":50}],[]]},"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"}},"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}},"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."},"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,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."},"SettingStatus":{"type":"string","enum":["disabled","live","testing"],"title":"SettingStatus","description":"Status enum."},"ShipmentAction":{"type":"string","enum":["submit_to_aggregators","reprocess_events","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":["reprocess_events"]},"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>- `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>- `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>- `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_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>- `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>- `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>- `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>- `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_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>- `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."},"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":"Current event key"},"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":"Current event key"},"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,"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."},"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"]},"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"]}},"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"},"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"},"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."},"ShopProductTranslationSchema-Input":{"properties":{"title":{"type":"string","nullable":true,"title":"Title","description":"Product title"}},"type":"object","title":"ShopProductTranslationSchema","description":"Shop product translation schema."},"ShopProductTranslationSchema-Output":{"properties":{"title":{"title":"Title","description":"Product title"}},"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"}},"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."},"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,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":"Event Key","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>- `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>- `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>- `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_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>- `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":"Event Key","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>- `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>- `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>- `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_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>- `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."},"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},"webhook":{"$ref":"#/components/schemas/WebhookSettingsV1","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":{},"webhook":{}},"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"]}},"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"]},"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."},"WebhookSettingsV1":{"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: 24 for webhooks, unlike other integrations which default to 4)","default":24},"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":"WebhookSettingsV1","description":"Schema for webhook settings.\n\nInherits status, trigger_delivered_all_events, shipment_group_key,\nstale_event_threshold, internal_triggers, and segments_enabled from base.\nWebhooks are always enabled if configured."},"WebhookStatus":{"type":"string","enum":["active","inactive"],"title":"WebhookStatus","description":"Webhook Status Type."},"WebhookTriggerSettingsDTO-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: 24 for webhooks, unlike other integrations which default to 4)","default":24},"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":"WebhookTriggerSettingsDTO","description":"Webhook-specific trigger settings for public API.\n\nInherits status, trigger_delivered_all_events, stale_event_threshold,\nand segments_enabled from base. Overrides stale_event_threshold default\nfrom 4 to 24 hours for webhooks."},"WebhookTriggerSettingsDTO-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: 24 for webhooks, unlike other integrations which default to 4)","default":24},"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":"WebhookTriggerSettingsDTO","description":"Webhook-specific trigger settings for public API.\n\nInherits status, trigger_delivered_all_events, stale_event_threshold,\nand segments_enabled from base. Overrides stale_event_threshold default\nfrom 4 to 24 hours for webhooks."},"WebhookTriggerSettingsUpdateDTO":{"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":"WebhookTriggerSettingsUpdateDTO","description":"Webhook-specific trigger settings update for public API.\n\nInherits all optional update fields from base:\nstatus, trigger_delivered_all_events, stale_event_threshold, segments_enabled."},"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"]}},"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."},"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","Claim","Product"]},{"name":"Marketing","tags":["Campaign","Discount","Deal","Announcement","ABTest"]},{"name":"Integrations","tags":["Webhook","Shopify","WooCommerce"]}],"servers":[{"url":"https://api.gokarla.io","description":"Production"}]}