{"openapi":"3.1.0","info":{"title":"yoco-api","description":"The Yoco API has everything you need to get building with Yoco.","version":"1.0.0"},"servers":[{"url":"https://api.yoco.com","description":"Production"},{"url":"https://api.yocosandbox.com","description":"Sandbox"}],"paths":{"/v1/capital/active_offers":{"get":{"tags":["Capital"],"summary":"List active Capital offers","description":"List active Capital offers\n\n**Required scope: `business/capital_offers:read`**","operationId":"list_active_capital_offers_v1_capital_active_offers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_CapitalOffer_"},"example":{"data":[{"id":"1748253969559-12951c6c-8033-44ee-ba87-539232f6fac9","business_id":"1739522545-45b6b5d8-897f-4a00-86f4-a7e9b315934f","provider_name":"Yoco Capital","max_principal_amount":{"amount":5000000,"currency":"ZAR"},"created_at":"2024-11-19T15:27:02+00:00","expires_at":"2024-12-19T15:27:02+00:00"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"}}}}},"security":[{"Bearer":[]}]}},"/v1/capital/active_advances":{"get":{"tags":["Capital"],"summary":"List active Capital advances","description":"List active Capital advances\n\n**Required scope: `business/capital_advances:read`**","operationId":"list_active_capital_advances_v1_capital_active_advances_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_CapitalAdvance_"},"example":{"data":[{"id":"b1094ef1-c8c0-4a3e-9b9e-3f5786f72f54","business_id":"1739522545-45b6b5d8-897f-4a00-86f4-a7e9b315934f","provider_name":"Yoco Capital","repayment_rate":"0.1","principal_amount":{"amount":15000000,"currency":"ZAR"},"total_payable_amount":{"amount":28400000,"currency":"ZAR"},"total_paid_amount":{"amount":10000000,"currency":"ZAR"},"created_at":"2025-09-01T08:28:17.367000Z"}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"}}}}},"security":[{"Bearer":[]}]}},"/v1/item_brands/":{"get":{"tags":["Item Brands"],"summary":"List item brands","description":"List item brands\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"list_item_brands_v1_item_brands__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ItemBrand_"},"example":{"data":[{"id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337","name":"Lavazza","description":"Italy's iconic coffee brand, blending tradition and innovation for rich, authentic flavor.","image":{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/item_brands/{item_brand_id}":{"get":{"tags":["Item Brands"],"summary":"Fetch an item brand","description":"Fetch an item brand\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"fetch_item_brand_v1_item_brands__item_brand_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"item_brand_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the item brand.","title":"Item Brand Id"},"description":"The unique identifier of the item brand."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemBrand"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/item_categories/":{"get":{"tags":["Item Categories"],"summary":"List item categories","description":"List item categories\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"list_item_categories_v1_item_categories__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ItemCategory_"},"example":{"data":[{"id":"1757511249593-dd25e17c-5541-4276-a078-8c3dcca296de","name":"Hot Beverages","description":"A home for all our tasty warm beverages.","image":{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","parent_category":{"id":"1757511225824-ab79f3ee-5a21-4bca-a060-ef27d9aae788","name":"Beverages","description":"A home for all our beverages.","image":{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/item_categories/{item_category_id}":{"get":{"tags":["Item Categories"],"summary":"Fetch an item category","description":"Fetch an item category\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"fetch_item_category_v1_item_categories__item_category_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"item_category_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the item category.","title":"Item Category Id"},"description":"The unique identifier of the item category."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCategory"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/items/":{"get":{"tags":["Items"],"summary":"List items","description":"List items\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"list_items_v1_items__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"expand","in":"query","required":false,"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExpandableItem"},"description":"Specifies which related entities to inflate in the response. Repeat the parameter to expand multiple entities, e.g. `?expand=brand&expand=category`. By default, related entities are returned only as identifiers (e.g. `brand_id`, `category_id`).","title":"Expand"},"description":"Specifies which related entities to inflate in the response. Repeat the parameter to expand multiple entities, e.g. `?expand=brand&expand=category`. By default, related entities are returned only as identifiers (e.g. `brand_id`, `category_id`)."},{"name":"location_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}],"description":"Filter items to those available at this location, and resolve variant prices for that location.","title":"Location Id"},"description":"Filter items to those available at this location, and resolve variant prices for that location."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Annotated_Union_ProductItem__ServiceItem___FieldInfo_annotation_NoneType__required_True__discriminator__type____"},"examples":{"product":{"summary":"Product","value":{"data":[{"type":"product","id":"1584347797665-e75edf46-394c-446a-8d25-5a6e0f244cef","name":"Flat White","description":"A rich espresso with silky steamed milk and microfoam, smooth and balanced.","default_price":{"amount":3800,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1757511249593-dd25e17c-5541-4276-a078-8c3dcca296de","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","brand_id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337"}],"next_cursor":"1323935095007282836"}},"product_with_variants":{"summary":"Product with variants","value":{"data":[{"type":"product","id":"1719321840557-3f8a1d29-7b04-4e10-9c63-2d4f7e9a8b21","name":"Classic Cotton T-Shirt","description":"100% cotton crew-neck t-shirt with a relaxed fit, available in three sizes.","default_price":{"amount":19900,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1719321841992-eaa9d3b6-1c47-4b8a-a4f1-8a7c61f0a3d4","options":[{"id":"1719321843217-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90","name":"Size","values":[{"name":"Small"},{"name":"Medium"},{"name":"Large"}],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"has_multiple_variants":true,"variants":[{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small","sku":"TEE-CC-S","barcode":"5901234123451","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Small"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:medium","sku":"TEE-CC-M","barcode":"5901234123468","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Medium"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:large","sku":"TEE-CC-L","barcode":"5901234123475","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Large"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","brand_id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337"}],"next_cursor":"1323935095007282836"}},"product_with_modifiers":{"summary":"Product with modifiers","value":{"data":[{"type":"product","id":"1719321840557-3f8a1d29-7b04-4e10-9c63-2d4f7e9a8b21","name":"Cheeseburger","description":"A juicy beef patty with melted cheese, lettuce, and tomato on a brioche bun.","default_price":{"amount":8500,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1719321841992-eaa9d3b6-1c47-4b8a-a4f1-8a7c61f0a3d4","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Doneness","min_selections":1,"max_selections":1,"ordinal":0,"modifiers":[{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","type":"note","name":"Medium-Rare","pricing_strategy":"free","is_selected_by_default":true,"ordinal":0},{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566aa","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","type":"note","name":"Well-Done","pricing_strategy":"free","is_selected_by_default":false,"ordinal":1}]},{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455aa","name":"Side Orders","min_selections":0,"max_selections":2,"ordinal":1,"modifiers":[{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566bb","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455aa","type":"product","name":"Chips","pricing_strategy":"fixed_price","fixed_price":{"amount":2500,"currency":"ZAR"},"is_selected_by_default":false,"ordinal":0,"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:chips"}]}],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"next_cursor":"1323935095007282836"}},"service":{"summary":"Service","value":{"data":[{"type":"service","id":"1742394820001-a27d3f6e-4b18-4c92-9e51-2a8fbb4d31c7","name":"Men's Haircut","description":"A classic men's haircut and style finish, including a wash and blow-dry.","default_price":{"amount":25000,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1742394821447-c5f1a902-6d77-4f14-bbe2-09d2c4fa5e88","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"next_cursor":"1323935095007282836"}}}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/items/{item_id}":{"get":{"tags":["Items"],"summary":"Fetch an item","description":"Fetch an item\n\n**Required scope: `business/catalogue:read`**\n\n**Deprecated alias:** `business/products:read` (still accepted, will be removed in a future release)","operationId":"fetch_item_v1_items__item_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the item.","title":"Item Id"},"description":"The unique identifier of the item."},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpandableItem"}},{"type":"null"}],"description":"Specifies which related entities to inflate in the response. Repeat the parameter to expand multiple entities, e.g. `?expand=brand&expand=category`. By default, related entities are returned only as identifiers (e.g. `brand_id`, `category_id`).","title":"Expand"},"description":"Specifies which related entities to inflate in the response. Repeat the parameter to expand multiple entities, e.g. `?expand=brand&expand=category`. By default, related entities are returned only as identifiers (e.g. `brand_id`, `category_id`)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProductItem"},{"$ref":"#/components/schemas/ServiceItem"}],"discriminator":{"propertyName":"type","mapping":{"product":"#/components/schemas/ProductItem","service":"#/components/schemas/ServiceItem"}},"title":"Response Fetch Item V1 Items  Item Id  Get"},"examples":{"product":{"summary":"Product","value":{"type":"product","id":"1584347797665-e75edf46-394c-446a-8d25-5a6e0f244cef","name":"Flat White","description":"A rich espresso with silky steamed milk and microfoam, smooth and balanced.","default_price":{"amount":3800,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1757511249593-dd25e17c-5541-4276-a078-8c3dcca296de","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","brand_id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337"}},"product_with_variants":{"summary":"Product with variants","value":{"type":"product","id":"1719321840557-3f8a1d29-7b04-4e10-9c63-2d4f7e9a8b21","name":"Classic Cotton T-Shirt","description":"100% cotton crew-neck t-shirt with a relaxed fit, available in three sizes.","default_price":{"amount":19900,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1719321841992-eaa9d3b6-1c47-4b8a-a4f1-8a7c61f0a3d4","options":[{"id":"1719321843217-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90","name":"Size","values":[{"name":"Small"},{"name":"Medium"},{"name":"Large"}],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"has_multiple_variants":true,"variants":[{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small","sku":"TEE-CC-S","barcode":"5901234123451","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Small"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:medium","sku":"TEE-CC-M","barcode":"5901234123468","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Medium"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"},{"id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:large","sku":"TEE-CC-L","barcode":"5901234123475","price":{"amount":19900,"currency":"ZAR"},"is_enabled":true,"selected_options":[{"name":"Size","value":"Large"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","brand_id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337"}},"product_with_modifiers":{"summary":"Product with modifiers","value":{"type":"product","id":"1719321840557-3f8a1d29-7b04-4e10-9c63-2d4f7e9a8b21","name":"Cheeseburger","description":"A juicy beef patty with melted cheese, lettuce, and tomato on a brioche bun.","default_price":{"amount":8500,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1719321841992-eaa9d3b6-1c47-4b8a-a4f1-8a7c61f0a3d4","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Doneness","min_selections":1,"max_selections":1,"ordinal":0,"modifiers":[{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","type":"note","name":"Medium-Rare","pricing_strategy":"free","is_selected_by_default":true,"ordinal":0},{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566aa","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","type":"note","name":"Well-Done","pricing_strategy":"free","is_selected_by_default":false,"ordinal":1}]},{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455aa","name":"Side Orders","min_selections":0,"max_selections":2,"ordinal":1,"modifiers":[{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566bb","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455aa","type":"product","name":"Chips","pricing_strategy":"fixed_price","fixed_price":{"amount":2500,"currency":"ZAR"},"is_selected_by_default":false,"ordinal":0,"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:chips"}]}],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}},"service":{"summary":"Service","value":{"type":"service","id":"1742394820001-a27d3f6e-4b18-4c92-9e51-2a8fbb4d31c7","name":"Men's Haircut","description":"A classic men's haircut and style finish, including a wash and blow-dry.","default_price":{"amount":25000,"currency":"ZAR"},"is_taxable":true,"taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00"}],"images":[{"id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","type":"image","mime_type":"image/jpeg","url":"https://images.yoco.com/foo/bar.jpg","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"category_id":"1742394821447-c5f1a902-6d77-4f14-bbe2-09d2c4fa5e88","options":[],"has_multiple_variants":false,"variants":[],"modifier_groups":[],"created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}}}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/locations/":{"get":{"tags":["Locations"],"summary":"List locations","description":"List locations\n\n**Required scope: `business/locations:read`**","operationId":"list_locations_v1_locations__get","security":[{"Bearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Location_"},"example":{"data":[{"id":"1743683416648-616bc018-c572-430b-9c07-4e813ed03eb4","name":"Main Store","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/locations/{location_id}":{"get":{"tags":["Locations"],"summary":"Fetch a location","description":"Fetch a location\n\n**Required scope: `business/locations:read`**","operationId":"fetch_location_v1_locations__location_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the location.","title":"Location Id"},"description":"The unique identifier of the location."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Location"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/modifier_groups/":{"get":{"tags":["Modifier Groups"],"summary":"List modifier groups","description":"List modifier groups\n\n**Required scope: `business/catalogue:read`**","operationId":"list_modifier_groups_v1_modifier_groups__get","security":[{"Bearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min modifier group created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min modifier group created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max modifier group created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max modifier group created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_ModifierGroup_"},"example":{"data":[{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Side Orders","min_selections":0,"max_selections":2,"modifiers":[{"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","type":"product","name":"Chips","pricing_strategy":"fixed_price","fixed_price":{"amount":500,"currency":"ZAR"},"is_selected_by_default":false,"ordinal":1,"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"created_at":"2024-11-19T15:27:02+00:00"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/modifier_groups/{modifier_group_id}":{"get":{"tags":["Modifier Groups"],"summary":"Fetch a modifier group","description":"Fetch a modifier group\n\n**Required scope: `business/catalogue:read`**","operationId":"fetch_modifier_group_v1_modifier_groups__modifier_group_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"modifier_group_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the modifier group.","title":"Modifier Group Id"},"description":"The unique identifier of the modifier group."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifierGroup"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/orders/":{"get":{"tags":["Orders"],"summary":"List orders","description":"List orders\n\n**Required scope: `business/orders:read`**","operationId":"list_orders_v1_orders__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"closed_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min closed date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Closed At  Gte"},"description":"The min closed date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"closed_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max closed date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Closed At  Lte"},"description":"The max closed date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/OrderStatus"}},{"type":"null"}],"description":"A list of statuses to filter on.","title":"Status"},"description":"A list of statuses to filter on."},{"name":"location_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"description":"A list of location ids to filter on. Pass \"null\" to include orders without a location.","title":"Location Id"},"description":"A list of location ids to filter on. Pass \"null\" to include orders without a location."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Order_"},"example":{"data":[{"id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","display_name":"Order #10542623","order_number":"10542623","name":"Table 42","currency":"ZAR","note":"This is a very important table.","location_id":"93e230af-afc5-4839-a471-ba52f71f9447","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","closed_at":"2024-11-19T16:27:23+00:00","status":"completed","amounts":{"gross_amount":{"amount":16680,"currency":"ZAR"},"discount_amount":{"amount":2780,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"}},"line_items":[{"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6","name":"Men's Funky Blue T-Shirt - Medium","quantity":"1.00","item_type":"product","note":"This is an optional note related to this item in the order.","unit_price":{"amount":13900,"currency":"ZAR"},"total_price":{"amount":13900,"currency":"ZAR"},"discount_amount":{"amount":2780,"currency":"ZAR"},"net_amount":{"amount":25020,"currency":"ZAR"},"applied_taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00","tax_amount":{"amount":3000,"currency":"ZAR"},"scope":"line_item"}],"applied_discounts":[{"name":"Item Discount","type":"fixed_percentage","percentage":"10.00","discount_amount":{"amount":3000,"currency":"ZAR"},"scope":"order"}],"modifiers":[{"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","group_name":"Side Orders","group_ordinal":1,"name":"Chips","variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small","price":{"amount":500,"currency":"ZAR"},"ordinal":1}]}],"total_taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00","tax_amount":{"amount":3000,"currency":"ZAR"},"scope":"line_item"}],"applied_discounts":[{"name":"Item Discount","type":"fixed_percentage","percentage":"10.00","discount_amount":{"amount":3000,"currency":"ZAR"},"scope":"order"}],"payments":[{"id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","client_transaction_id":"5f29b4cf-5650-4c71-b7e5-f70eb892e55f","display_name":"Payment receipt #491352","receipt_number":"491352","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this payment.","amount_excl_tip":{"amount":25000,"currency":"ZAR"},"tip_amount":{"amount":2500,"currency":"ZAR"},"total_amount":{"amount":27500,"currency":"ZAR"},"refunded_amount":{"amount":0,"currency":"ZAR"},"status":"approved","payment_method":"card","payment_source":"payment_link","refunds":[{"id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","client_transaction_id":"rfd_765fde5ded7bxd","display_name":"Refund receipt #491352","receipt_number":"491352","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this refund.","total_amount":{"amount":4500,"currency":"ZAR"},"status":"approved","processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"processed_at":"2024-11-20T16:27:23+00:00","payment_method":"card","refunded_processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"refund_type":"auth_reversal"}],"checkout_id":"ch_J2xYWl4m7B6DsKAPCM9SRDEd","external_id":"order-123"}],"refunds":[{"id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","client_transaction_id":"rfd_765fde5ded7bxd","display_name":"Refund receipt #491352","receipt_number":"491352","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this refund.","total_amount":{"amount":4500,"currency":"ZAR"},"status":"approved","processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"processed_at":"2024-11-20T16:27:23+00:00","payment_method":"card","refunded_processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"refund_type":"auth_reversal"}],"returns":[{"returned_line_items":[{"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6","name":"Men's Funky Blue T-Shirt - Medium","quantity":"1.00","item_type":"product","note":"This is an optional note related to this item in the order.","unit_price":{"amount":13900,"currency":"ZAR"},"total_price":{"amount":13900,"currency":"ZAR"},"discount_amount":{"amount":2780,"currency":"ZAR"},"net_amount":{"amount":25020,"currency":"ZAR"},"applied_taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00","tax_amount":{"amount":3000,"currency":"ZAR"},"scope":"line_item"}],"applied_discounts":[{"name":"Item Discount","type":"fixed_percentage","percentage":"10.00","discount_amount":{"amount":3000,"currency":"ZAR"},"scope":"order"}],"modifiers":[{"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","group_name":"Side Orders","group_ordinal":1,"name":"Chips","variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small","price":{"amount":500,"currency":"ZAR"},"ordinal":1}]}],"returned_total_taxes":[{"name":"VAT","type":"inclusive","percentage":"15.00","tax_amount":{"amount":3000,"currency":"ZAR"},"scope":"line_item"}],"returned_applied_discounts":[{"name":"Item Discount","type":"fixed_percentage","percentage":"10.00","discount_amount":{"amount":3000,"currency":"ZAR"},"scope":"order"}],"source_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","amounts":{"gross_amount":{"amount":16680,"currency":"ZAR"},"discount_amount":{"amount":2780,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"}}}]}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/orders/{order_id}":{"get":{"tags":["Orders"],"summary":"Fetch an order","description":"Fetch an order\n\n**Required scope: `business/orders:read`**","operationId":"fetch_order_v1_orders__order_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the order.","title":"Order Id"},"description":"The unique identifier of the order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payment_links/":{"post":{"tags":["Payment links"],"summary":"Create a payment link","description":"Create a payment link\n\n**Required scopes: `business/orders:read`, `business/orders:write`**","operationId":"create_payment_link_v1_payment_links__post","security":[{"Bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentLinkRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}},"get":{"tags":["Payment links"],"summary":"List payment links","description":"List payment links\n\n**Required scope: `business/orders:read`**","operationId":"list_payment_links_v1_payment_links__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/PaymentLinkStatus"}},{"type":"null"}],"description":"A list of statuses to filter on.","title":"Status"},"description":"A list of statuses to filter on."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_PaymentLink_"},"example":{"data":[{"id":"1743683416648-616bc018-c572-430b-9c07-4e813ed03eb4","url":"https://pay.yoco.com/r/dRggEC","customer_reference":"Peter Parker","customer_description":"This description is visible to the customer on the payment page.","status":"pending","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payment_links/{payment_link_id}":{"get":{"tags":["Payment links"],"summary":"Fetch a payment link","description":"Fetch a payment link\n\n**Required scope: `business/orders:read`**","operationId":"fetch_payment_link_v1_payment_links__payment_link_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"payment_link_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the payment link.","title":"Payment Link Id"},"description":"The unique identifier of the payment link."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentLink"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}},"delete":{"tags":["Payment links"],"summary":"Delete a payment link","description":"Delete a payment link\n\n**Required scopes: `business/orders:read`, `business/orders:write`**","operationId":"delete_payment_link_v1_payment_links__payment_link_id__delete","security":[{"Bearer":[]}],"parameters":[{"name":"payment_link_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the payment link.","title":"Payment Link Id"},"description":"The unique identifier of the payment link."}],"responses":{"204":{"description":"Successful Response"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payments/":{"get":{"tags":["Payments"],"summary":"List payments","description":"List payments\n\n**Required scope: `business/orders:read`**","operationId":"list_payments_v1_payments__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/PaymentStatus"}},{"type":"null"}],"description":"A list of statuses to filter on.","title":"Status"},"description":"A list of statuses to filter on."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Payment_"},"example":{"data":[{"id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","client_transaction_id":"5f29b4cf-5650-4c71-b7e5-f70eb892e55f","display_name":"Payment receipt #491352","receipt_number":"491352","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this payment.","amount_excl_tip":{"amount":25000,"currency":"ZAR"},"tip_amount":{"amount":2500,"currency":"ZAR"},"total_amount":{"amount":27500,"currency":"ZAR"},"refunded_amount":{"amount":0,"currency":"ZAR"},"status":"approved","payment_method":"card","payment_source":"payment_link","refunds":[{"id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","client_transaction_id":"rfd_765fde5ded7bxd","display_name":"Refund receipt #491352","receipt_number":"491352","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this refund.","total_amount":{"amount":4500,"currency":"ZAR"},"status":"approved","processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"processed_at":"2024-11-20T16:27:23+00:00","payment_method":"card","refunded_processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"refund_type":"auth_reversal"}],"checkout_id":"ch_J2xYWl4m7B6DsKAPCM9SRDEd","external_id":"order-123"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payments/{payment_id}":{"get":{"tags":["Payments"],"summary":"Fetch a payment","description":"Fetch a payment\n\n**Required scope: `business/orders:read`**","operationId":"fetch_payment_v1_payments__payment_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the payment.","title":"Payment Id"},"description":"The unique identifier of the payment."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payment"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payouts/":{"get":{"tags":["Payouts"],"summary":"List payouts","description":"List payouts\n\n**Required scope: `business/payouts:read`**","operationId":"list_payouts_v1_payouts__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/PayoutStatus"}},{"type":"null"}],"description":"A list of statuses to filter on.","title":"Status"},"description":"A list of statuses to filter on."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Payout_"},"example":{"data":[{"id":"1744288539-57db0a32-3cae-40af-a328-b22a09cfcb94","status":"paid","payout_type":"standard","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","gross_amount":{"amount":12000,"currency":"ZAR"},"capital_repayment_amount":{"amount":250,"currency":"ZAR"},"fee_amount":{"amount":350,"currency":"ZAR"},"net_amount":{"amount":11400,"currency":"ZAR"},"payout_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}]}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payouts/{payout_id}":{"get":{"tags":["Payouts"],"summary":"Fetch a payout","description":"Fetch a payout\n\n**Required scope: `business/payouts:read`**","operationId":"fetch_payout_v1_payouts__payout_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"payout_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the payout.","title":"Payout Id"},"description":"The unique identifier of the payout."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Payout"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/payouts/{payout_id}/payout_entries":{"get":{"tags":["Payouts"],"summary":"List payout entries","description":"List payout entries\n\n**Required scope: `business/payouts:read`**","operationId":"list_payout_entries_v1_payouts__payout_id__payout_entries_get","security":[{"Bearer":[]}],"parameters":[{"name":"payout_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the payout.","title":"Payout Id"},"description":"The unique identifier of the payout."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_PayoutEntry_"},"example":{"data":[{"id":"1744289052-a70682ae-7376-404c-9859-3aa100322fa0","client_transaction_id":"rfd_765fde5ded7bxd","payout_id":"1744288539-57db0a32-3cae-40af-a328-b22a09cfcb94","type":"payment","gross_amount":{"amount":12000,"currency":"ZAR"},"capital_repayment_amount":{"amount":250,"currency":"ZAR"},"fee_amount":{"amount":350,"currency":"ZAR"},"net_amount":{"amount":11400,"currency":"ZAR"}}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/refunds/":{"get":{"tags":["Refunds"],"summary":"List refunds","description":"List refunds\n\n**Required scope: `business/orders:read`**","operationId":"list_refunds_v1_refunds__get","security":[{"Bearer":[]}],"parameters":[{"name":"created_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Gte"},"description":"The min created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"created_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Created At  Lte"},"description":"The max created date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__gte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Gte"},"description":"The min updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"updated_at__lte","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days.","example":"2024-11-19T15:27:02+00:00","title":"Updated At  Lte"},"description":"The max updated date and time in ISO 8601 format. If only one bound is provided, the other is automatically set 31 days away (e.g. supplying only `__gte=2024-11-01T00:00:00Z` sets `__lte=2024-12-02T00:00:00Z`). When both bounds are provided, the range may not exceed 31 days."},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/RefundStatus"}},{"type":"null"}],"description":"A list of statuses to filter on.","title":"Status"},"description":"A list of statuses to filter on."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_Refund_"},"example":{"data":[{"id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","client_transaction_id":"rfd_765fde5ded7bxd","display_name":"Refund receipt #491352","receipt_number":"491352","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T16:27:23+00:00","currency":"ZAR","note":"This is a note on this refund.","total_amount":{"amount":4500,"currency":"ZAR"},"status":"approved","processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"processed_at":"2024-11-20T16:27:23+00:00","payment_method":"card","refunded_processing_fees":[{"type":"initial","amount":{"amount":27800,"currency":"ZAR"}}],"refund_type":"auth_reversal"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/refunds/{refund_id}":{"get":{"tags":["Refunds"],"summary":"Fetch a refund","description":"Fetch a refund\n\n**Required scope: `business/orders:read`**","operationId":"fetch_refund_v1_refunds__refund_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"refund_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the refund.","title":"Refund Id"},"description":"The unique identifier of the refund."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Refund"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webhooks/subscriptions/":{"post":{"tags":["Webhooks"],"summary":"Create webhook subscription","description":"Create webhook subscription\n\n**Required scopes: `application/webhooks:read`, `application/webhooks:write`**","operationId":"create_webhook_subscription_v1_webhooks_subscriptions__post","security":[{"Bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookSubscriptionRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscription"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}},"get":{"tags":["Webhooks"],"summary":"List webhook subscriptions","description":"List webhook subscriptions\n\n**Required scope: `application/webhooks:read`**","operationId":"list_webhook_subscriptions_v1_webhooks_subscriptions__get","security":[{"Bearer":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}],"description":"A pagination cursor from where results should start being fetched.","title":"Cursor"},"description":"A pagination cursor from where results should start being fetched."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The maximum number of results to return.","format":"int32","default":50,"title":"Limit"},"description":"The maximum number of results to return."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_WebhookSubscription_"},"example":{"data":[{"id":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2","name":"Example Webhook Subscription","enabled":true,"event_types":["payment.created"],"notification_url":"https://webhook.site/1d9d0c3c-c0f9-4def-8cf1-99efb5931eca","secret":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD","created_at":"2024-11-19T15:27:02+00:00","updated_at":"2024-11-19T15:27:02+00:00"}],"next_cursor":"1323935095007282836"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webhooks/subscriptions/{subscription_id}":{"get":{"tags":["Webhooks"],"summary":"Fetch a webhook subscription","description":"Fetch a webhook subscription\n\n**Required scope: `application/webhooks:read`**","operationId":"fetch_webhook_subscription_v1_webhooks_subscriptions__subscription_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the subscription.","title":"Subscription Id"},"description":"The unique identifier of the subscription."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscription"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}},"delete":{"tags":["Webhooks"],"summary":"Delete a webhook subscription","description":"Delete a webhook subscription\n\n**Required scopes: `application/webhooks:read`, `application/webhooks:write`**","operationId":"delete_webhook_subscription_v1_webhooks_subscriptions__subscription_id__delete","security":[{"Bearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the subscription.","title":"Subscription Id"},"description":"The unique identifier of the subscription."}],"responses":{"204":{"description":"Successful Response"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}},"patch":{"tags":["Webhooks"],"summary":"Update a webhook subscription","description":"Update a webhook subscription\n\n**Required scopes: `application/webhooks:read`, `application/webhooks:write`**","operationId":"update_webhook_subscription_v1_webhooks_subscriptions__subscription_id__patch","security":[{"Bearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the subscription.","title":"Subscription Id"},"description":"The unique identifier of the subscription."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWebhookSubscriptionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSubscription"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webhooks/subscriptions/{subscription_id}/secret":{"post":{"tags":["Webhooks"],"summary":"Rotate the secret for a webhook subscription","description":"Rotate the secret for a webhook subscription\n\n**Required scopes: `application/webhooks:read`, `application/webhooks:write`**","operationId":"rotate_webhook_subscription_secret_v1_webhooks_subscriptions__subscription_id__secret_post","security":[{"Bearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the subscription.","title":"Subscription Id"},"description":"The unique identifier of the subscription."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateWebhookSubscriptionSecretResponse"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webhooks/subscriptions/{subscription_id}/test":{"post":{"tags":["Webhooks"],"summary":"Send a test webhook event for a subscription","description":"Send a test webhook event for a subscription\n\n**Required scope: `application/webhooks:write`**","operationId":"send_test_webhook_event_v1_webhooks_subscriptions__subscription_id__test_post","security":[{"Bearer":[]}],"parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":100,"description":"The unique identifier of the subscription.","title":"Subscription Id"},"description":"The unique identifier of the subscription."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTestWebhookEventRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendTestWebhookEventResponse"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webhooks/events/":{"get":{"tags":["Webhooks"],"summary":"List webhook event definitions","description":"List webhook event definitions","operationId":"list_webhook_event_definitions_v1_webhooks_events__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListResponse_WebhookEventDefinition_"},"example":{"data":[{"event_type":"payment.created","name":"Payment Created","description":"A notification sent when a payment is created."}]}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"}}}}},"security":[{"Bearer":[]}]}},"/v1/webpos/":{"post":{"tags":["Web POS"],"summary":"Create a Web POS device","description":"Create a Web POS device. Web POS devices represent a station/browser instance/device, for example 'Reception', 'Back Office', 'Joe iPad', etc.\n\n**Required scopes: `business/webpos:read`, `business/webpos:write`**","operationId":"create_web_pos_device_v1_webpos__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebPOSDeviceRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebPOSDevice"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"},"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"}}}}},"security":[{"Bearer":[]}]}},"/v1/webpos/{webpos_device_id}":{"get":{"tags":["Web POS"],"summary":"Fetch a Web POS device","description":"Fetch a Web POS device\n\n**Required scope: `business/webpos:read`**","operationId":"fetch_web_pos_device_v1_webpos__webpos_device_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"webpos_device_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"The unique ID of the Web POS device."}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebPOSDevice"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webpos/{webpos_device_id}/payments":{"post":{"tags":["Web POS"],"summary":"Create a Web POS payment","description":"Create a Web POS payment. This is used to initiate a new payment acceptance process.\n\n**Required scopes: `business/webpos:read`, `business/webpos:write`**","operationId":"create_web_pos_payment_v1_webpos__webpos_device_id__payments_post","security":[{"Bearer":[]}],"parameters":[{"name":"webpos_device_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"The unique ID of the Web POS device."}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebPOSPaymentRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebPOSPayment"}}}},"400":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/validation","title":"Validation Error","detail":"The request contains one or more validation errors.","status":400,"code":"validation"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/webpos/{webpos_device_id}/payments/{payment_id}":{"get":{"tags":["Web POS"],"summary":"Fetch a Web POS payment","description":"Fetch a Web POS payment.\n\n**Required scope: `business/webpos:read`**","operationId":"fetch_web_pos_payment_v1_webpos__webpos_device_id__payments__payment_id__get","security":[{"Bearer":[]}],"parameters":[{"name":"webpos_device_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"The unique ID of the Web POS device."}},{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"The unique ID of the Web POS payment."}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebPOSPayment"}}}},"401":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/unauthorized","title":"Unauthorized","detail":"The provided credentials are invalid.","status":401,"code":"unauthorized"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/forbidden","title":"Forbidden","detail":"You do not have permission to access this resource.","status":403,"code":"forbidden"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/not-found","title":"Not Found","detail":"The requested resource does not exist.","status":404,"code":"not_found"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"429":{"content":{"application/json":{"example":{"type":"https://developer.yoco.com/docs/api/error-codes/rate-limited","title":"Too Many Requests","detail":"You have exceeded the rate limit for this API end-point.","status":429,"code":"rate_limited"},"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"}}}},"/v1/oauth2/token_info":{"get":{"tags":["OAuth 2"],"summary":"Get token info","description":"Get token info","operationId":"get_token_info_v1_oauth2_token_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizedBusinessDetailsResponse"}}}}},"security":[{"Bearer":[]}]}}},"webhooks":{"item_category.created":{"post":{"tags":["Webhook Events"],"summary":"Item Category Created","description":"A notification sent when an item category is created.\n\n**Required scope: `business/products:read`**","operationId":"item_category.created","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCategoryCreated"}}},"required":true}}},"item_category.deleted":{"post":{"tags":["Webhook Events"],"summary":"Item Category Deleted","description":"A notification sent when an item category is deleted.\n\n**Required scope: `business/products:read`**","operationId":"item_category.deleted","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCategoryDeleted"}}},"required":true}}},"item_category.updated":{"post":{"tags":["Webhook Events"],"summary":"Item Category Updated","description":"A notification sent when an item category is updated.\n\n**Required scope: `business/products:read`**","operationId":"item_category.updated","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCategoryUpdated"}}},"required":true}}},"item.created":{"post":{"tags":["Webhook Events"],"summary":"Item Created","description":"A notification sent when an item is created.\n\n**Required scope: `business/products:read`**","operationId":"item.created","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemCreated"}}},"required":true}}},"item.deleted":{"post":{"tags":["Webhook Events"],"summary":"Item Deleted","description":"A notification sent when an item is deleted.\n\n**Required scope: `business/products:read`**","operationId":"item.deleted","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemDeleted"}}},"required":true}}},"item.updated":{"post":{"tags":["Webhook Events"],"summary":"Item Updated","description":"A notification sent when an item is updated.\n\n**Required scope: `business/products:read`**","operationId":"item.updated","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemUpdated"}}},"required":true}}},"order.cancelled":{"post":{"tags":["Webhook Events"],"summary":"Order Cancelled","description":"A notification sent when an order is cancelled.\n\n**Required scope: `business/orders:read`**","operationId":"order.cancelled","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCancelled"}}},"required":true}}},"order.completed":{"post":{"tags":["Webhook Events"],"summary":"Order Completed","description":"A notification sent when an order is closed (fully paid).\n\n**Required scope: `business/orders:read`**","operationId":"order.completed","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCompleted"}}},"required":true}}},"order.created":{"post":{"tags":["Webhook Events"],"summary":"Order Created","description":"A notification sent when a new order is opened.\n\n**Required scope: `business/orders:read`**","operationId":"order.created","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderCreated"}}},"required":true}}},"order.updated":{"post":{"tags":["Webhook Events"],"summary":"Order Updated","description":"A notification sent when an order is updated — line items added, changed, or voided; or when the order is saved or transferred.\n\n**Required scope: `business/orders:read`**","operationId":"order.updated","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderUpdated"}}},"required":true}}},"payment.created":{"post":{"tags":["Webhook Events"],"summary":"Payment Created","description":"A notification sent when a payment is created.\n\n**Required scope: `business/orders:read`**","operationId":"payment.created","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentCreated"}}},"required":true}}},"payment.refunded":{"post":{"tags":["Webhook Events"],"summary":"Payment Refunded","description":"A notification sent when a payment is refunded.\n\n**Required scope: `business/orders:read`**","operationId":"payment.refunded","parameters":[{"description":"An HMAC signature of the payload used to verify the webhook came from Yoco.","required":true,"schema":{"type":"string","title":"Webhook-Signature","description":"An HMAC signature of the payload used to verify the webhook came from Yoco."},"name":"webhook-signature","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRefunded"}}},"required":true}}}},"components":{"schemas":{"AuthorizedBusinessDetailsResponse":{"properties":{"business_id":{"type":"string","title":"Business Id","description":"Business id of the authorized business."},"business_name":{"type":"string","title":"Business Name","description":"Business name of the authorized business."}},"type":"object","required":["business_id","business_name"],"title":"AuthorizedBusinessDetailsResponse","example":{"business_id":"macs_burger_joint_2","business_name":"Macs Burger Joint"}},"CapitalAdvance":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the Capital advance."},"business_id":{"type":"string","title":"Business Id","description":"The unique identifier of the business this advance is for."},"provider_name":{"type":"string","title":"Provider Name","description":"The name of the Capital provider."},"repayment_rate":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Repayment Rate","description":"The repayment rate as a decimal (e.g., 0.1 for 10%)."},"principal_amount":{"$ref":"#/components/schemas/Money","description":"The principal amount of the advance."},"total_payable_amount":{"$ref":"#/components/schemas/Money","description":"The total amount payable for the advance."},"total_paid_amount":{"$ref":"#/components/schemas/Money","description":"The total amount already paid towards the advance."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The advance creation date and time in ISO 8601 format."}},"type":"object","required":["id","business_id","provider_name","repayment_rate","principal_amount","total_payable_amount","total_paid_amount","created_at"],"title":"CapitalAdvance","example":{"business_id":"1739522545-45b6b5d8-897f-4a00-86f4-a7e9b315934f","created_at":"2025-09-01T08:28:17.367000Z","id":"b1094ef1-c8c0-4a3e-9b9e-3f5786f72f54","principal_amount":{"amount":15000000,"currency":"ZAR"},"provider_name":"Yoco Capital","repayment_rate":"0.1","total_paid_amount":{"amount":10000000,"currency":"ZAR"},"total_payable_amount":{"amount":28400000,"currency":"ZAR"}}},"CapitalOffer":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the Capital offer."},"business_id":{"type":"string","title":"Business Id","description":"The unique identifier of the business this offer is for."},"provider_name":{"type":"string","title":"Provider Name","description":"The name of the Capital provider making the offer."},"max_principal_amount":{"$ref":"#/components/schemas/Money","description":"The max amount being offered to the merchant."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The offer creation date and time in ISO 8601 format."},"expires_at":{"type":"string","format":"date-time","title":"Expires At","description":"The offer expiration date and time in ISO 8601 format."}},"type":"object","required":["id","business_id","provider_name","max_principal_amount","created_at","expires_at"],"title":"CapitalOffer","example":{"business_id":"1739522545-45b6b5d8-897f-4a00-86f4-a7e9b315934f","created_at":"2024-11-19T15:27:02+00:00","expires_at":"2024-12-19T15:27:02+00:00","id":"1748253969559-12951c6c-8033-44ee-ba87-539232f6fac9","max_principal_amount":{"amount":5000000,"currency":"ZAR"},"provider_name":"Yoco Capital"}},"CardDetails":{"properties":{"scheme":{"type":"string","title":"Scheme","description":"The card issuing network."},"masked_pan":{"type":"string","title":"Masked Pan","description":"Masked representation of the cardholder's primary account number."},"pan_entry_mode":{"anyOf":[{"$ref":"#/components/schemas/PanEntryMode"},{"type":"null"}],"description":"Input method the cardholder used (eg. tapped or inserted their card)."},"cardholder_verification_method":{"anyOf":[{"$ref":"#/components/schemas/CardholderVerificationMethod"},{"type":"null"}],"description":"How the cardholder was verified (eg. entered a pin)."}},"type":"object","required":["scheme","masked_pan","pan_entry_mode","cardholder_verification_method"],"title":"CardDetails","example":{"cardholder_verification_method":"online_pin","masked_pan":"441595******4874","pan_entry_mode":"contactless_icc","scheme":"visa"}},"CardholderVerificationMethod":{"type":"string","enum":["approve_cvm_processing","failed","no_cvm_performed","offline_enciphered_pin","offline_enciphered_pin_and_signature","offline_plain_text_pin","offline_plain_text_pin_and_signature","online_pin","paper_based_signature_only"],"title":"CardholderVerificationMethod"},"CreatePaymentLinkRequest":{"properties":{"customer_reference":{"type":"string","maxLength":100,"minLength":1,"title":"Customer Reference","description":"The customer's name or reference that will appear on the payment page."},"customer_description":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Customer Description","description":"An optional description that will appear on the payment page."},"amount":{"$ref":"#/components/schemas/Money","description":"The amount to charge the customer."}},"type":"object","required":["customer_reference","amount"],"title":"CreatePaymentLinkRequest","example":{"amount":{"amount":1500,"currency":"ZAR"},"customer_description":"This description is visible to the customer on the payment page.","customer_reference":"Peter Parker"}},"CreateWebPOSDeviceRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"A friendly device name."}},"type":"object","required":["name"],"title":"CreateWebPOSDeviceRequest","example":{"name":"My Web POS"}},"CreateWebPOSPaymentRequest":{"properties":{"amount":{"$ref":"#/components/schemas/Money","description":"The amount of money to charge the buyer."},"client_reference":{"type":"string","maxLength":255,"minLength":1,"title":"Client Reference","description":"Any reference value as determined by the host POS. It is associated with the payment and will be echoed back."},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata","description":"Any map of metadata as determined by the host POS. It is associated with the payment and will be echoed back."}},"type":"object","required":["amount","client_reference"],"title":"CreateWebPOSPaymentRequest","example":{"amount":{"amount":200,"currency":"ZAR"},"client_reference":"af4a8c17-5720-4a8b-aab1-4619667eaa02","metadata":{"dev":"true"}}},"CreateWebhookSubscriptionRequest":{"properties":{"name":{"type":"string","maxLength":255,"minLength":1,"title":"Name","description":"A friendly name to describe the subscription."},"event_types":{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array","minItems":1,"title":"Event Types","description":"A list of event types to bind the subscription to."},"notification_url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Notification Url","description":"The URL to be notified when an event occurs."}},"type":"object","required":["name","event_types","notification_url"],"title":"CreateWebhookSubscriptionRequest","example":{"event_types":["payment.created"],"name":"Example Webhook Subscription","notification_url":"https://webhook.site/1d9d0c3c-c0f9-4def-8cf1-99efb5931eca"}},"DiscountItem":{"properties":{"name":{"type":"string","title":"Name","description":"A human-readable name for the discount."},"type":{"$ref":"#/components/schemas/DiscountType","description":"The type of discount affects how the discount is calculated."},"percentage":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Percentage","description":"If applicable, the percentage discount to apply. For example, `10.00` corresponds to a discount of `10%`."},"discount_amount":{"$ref":"#/components/schemas/Money","description":"The calculated discount."},"scope":{"$ref":"#/components/schemas/DiscountScope","description":"The scope indicates the level at which the discount is applied."}},"type":"object","required":["name","type","percentage","discount_amount","scope"],"title":"DiscountItem","example":{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}},"DiscountScope":{"type":"string","enum":["line_item","order"],"title":"DiscountScope","description":"`DiscountScope` can be either `order` or `line_item` and indicates whether the given discount is applied to\nthe entire order, or just a particular line item in the order."},"DiscountType":{"type":"string","enum":["fixed_amount","fixed_percentage"],"title":"DiscountType","description":"`DiscountType` can be either `fixed_percentage` or `fixed_amount` and affects how the discount is calculated.\n\nFor `fixed_percentage`, we apply a percentage on the amount to calculate the discount.\n\nFor `fixed_amount`, the discount is always a positive absolute amount."},"EmvApplicationInfo":{"properties":{"application_identifier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Identifier","description":"Application Identifier 'AppID' used for the card transaction"},"application_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Application Name","description":"The name associated with the application identifier"}},"type":"object","title":"EmvApplicationInfo","example":{"application_identifier":"A0000000031010","application_name":"VISA DEBIT"}},"ErrorCode":{"type":"string","enum":["forbidden","method_not_allowed","missing_required_field","not_found","rate_limited","server","unauthorized","validation"],"title":"ErrorCode","description":"`ErrorCode` is a unique code representing the type of error that occurred."},"ErrorDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"A human-readable explanation of what went wrong."},"pointer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pointer","description":"A JSON pointer to the request body property that caused the error."},"parameter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parameter","description":"The name of the query string or path parameter that caused the error."},"code":{"$ref":"#/components/schemas/ErrorCode","description":"A unique code representing the type of error that occurred."}},"type":"object","required":["detail","code"],"title":"ErrorDetail","description":"`ErrorDetail` contains additional error information to accompany an `ErrorResponse`.  It is an extension on the\n\"problem detail\" JSON response modelled in https://www.rfc-editor.org/rfc/rfc9457.html.\n\nAs an example, in the event of a 400 \"Validation Error\" type response, the response may contain one or many\n`ErrorDetail` records with more specific information on each field that failed validation.","example":{"code":"missing_required_field","detail":"The field is required.","pointer":"#/first_name"}},"ErrorResponse":{"properties":{"type":{"type":"string","title":"Type","description":"A URI reference that identifies the type of problem."},"title":{"type":"string","title":"Title","description":"A short human-readable summary of the problem."},"detail":{"type":"string","title":"Detail","description":"A human-readable explanation of what went wrong."},"status":{"type":"integer","title":"Status","description":"A HTTP status code generated by the server."},"code":{"$ref":"#/components/schemas/ErrorCode","description":"A unique code representing the type of error that occurred."},"errors":{"anyOf":[{"items":{"$ref":"#/components/schemas/ErrorDetail"},"type":"array"},{"type":"null"}],"title":"Errors","description":"A list of further error details to accompany a problem details response."}},"type":"object","required":["type","title","detail","status","code"],"title":"ErrorResponse","description":"`ErrorResponse` is a RFC 7807 aka \"problem details\" compatible response.\n\nSee the following references:\n- https://www.rfc-editor.org/rfc/rfc9457.html\n- https://problems-registry.smartbear.com/","example":{"code":"validation","detail":"The request contains one or more validation errors.","errors":[{"code":"missing_required_field","detail":"The field is required.","pointer":"#/first_name"}],"status":400,"title":"Validation Error","type":"https://developer.yoco.com/docs/api/error-codes/validation"}},"ExpandableItem":{"type":"string","enum":["brand","category","location_availability","price_overrides"],"title":"ExpandableItem","description":"`ExpandableItem` represents the related entities that can be expanded on an item response.\n\nBy default, the API returns only the identifiers of related entities (e.g. `category_id`, `brand_id`).\nPass `expand` query parameters to inflate the corresponding nested entity in the response."},"Fee":{"properties":{"type":{"$ref":"#/components/schemas/FeeType","description":"The type of fee assessed or adjusted."},"amount":{"$ref":"#/components/schemas/Money","description":"The fee amount."}},"type":"object","required":["type","amount"],"title":"Fee","example":{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}},"FeeType":{"type":"string","enum":["initial"],"title":"FeeType"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ItemBrand":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the brand."},"name":{"type":"string","title":"Name","description":"The name of the brand."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the brand."},"image":{"anyOf":[{"$ref":"#/components/schemas/Media"},{"type":"null"}],"description":"The image to show in the Yoco Point of Sale (POS) app."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The brand creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the brand was last modified in ISO 8601 format."}},"type":"object","required":["id","name","description","image","created_at","updated_at"],"title":"ItemBrand","example":{"created_at":"2024-11-19T15:27:02+00:00","description":"Italy's iconic coffee brand, blending tradition and innovation for rich, authentic flavor.","id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337","image":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"},"name":"Lavazza","updated_at":"2024-11-19T16:27:23+00:00"}},"ItemCategory":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the category."},"name":{"type":"string","title":"Name","description":"The name of the category."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the category."},"image":{"anyOf":[{"$ref":"#/components/schemas/Media"},{"type":"null"}],"description":"The image to show in the Yoco Point of Sale (POS) app."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The category creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the category was last modified in ISO 8601 format."},"parent_category":{"anyOf":[{"$ref":"#/components/schemas/ParentItemCategory"},{"type":"null"}],"description":"The parent category, if any, of this category."}},"type":"object","required":["id","name","description","image","created_at","updated_at","parent_category"],"title":"ItemCategory","example":{"created_at":"2024-11-19T15:27:02+00:00","description":"A home for all our tasty warm beverages.","id":"1757511249593-dd25e17c-5541-4276-a078-8c3dcca296de","image":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"},"name":"Hot Beverages","parent_category":{"created_at":"2024-11-19T15:27:02+00:00","description":"A home for all our beverages.","id":"1757511225824-ab79f3ee-5a21-4bca-a060-ef27d9aae788","image":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"},"name":"Beverages","updated_at":"2024-11-19T16:27:23+00:00"},"updated_at":"2024-11-19T16:27:23+00:00"}},"ItemCategoryCreated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_category_id":{"type":"string","title":"Item Category Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_category_id","event_type"],"title":"ItemCategoryCreated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item_category.created","item_category_id":"b2c3d4e5-f6a7-8901-bcde-f12345678901"}},"ItemCategoryDeleted":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_category_id":{"type":"string","title":"Item Category Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_category_id","event_type"],"title":"ItemCategoryDeleted","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item_category.deleted","item_category_id":"b2c3d4e5-f6a7-8901-bcde-f12345678901"}},"ItemCategoryUpdated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_category_id":{"type":"string","title":"Item Category Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_category_id","event_type"],"title":"ItemCategoryUpdated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item_category.updated","item_category_id":"b2c3d4e5-f6a7-8901-bcde-f12345678901"}},"ItemCreated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_id":{"type":"string","title":"Item Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_id","event_type"],"title":"ItemCreated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item.created","item_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}},"ItemDeleted":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_id":{"type":"string","title":"Item Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_id","event_type"],"title":"ItemDeleted","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item.deleted","item_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}},"ItemLocationAvailability":{"properties":{"is_available_at_all_locations":{"type":"boolean","title":"Is Available At All Locations","description":"Whether the item is available at all locations by default."},"included_location_ids":{"items":{"type":"string"},"type":"array","title":"Included Location Ids","description":"Location IDs where the item is explicitly available. Populated when `is_available_at_all_locations` is `false`; empty otherwise."},"excluded_location_ids":{"items":{"type":"string"},"type":"array","title":"Excluded Location Ids","description":"Location IDs where the item is explicitly unavailable. Populated when `is_available_at_all_locations` is `true`; empty otherwise."}},"type":"object","required":["is_available_at_all_locations"],"title":"ItemLocationAvailability","example":{"excluded_location_ids":["1700000000000-9b3f7b3e-3b3f-4b3f-9b3f-3b3f7b3e9b3f"],"included_location_ids":[],"is_available_at_all_locations":true}},"ItemModifierGroup":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the modifier group."},"name":{"type":"string","title":"Name","description":"The name of the modifier group."},"min_selections":{"type":"integer","title":"Min Selections","description":"The minimum number of modifiers that must be selected from the group. A value of `0` means the group is optional."},"max_selections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Selections","description":"The maximum number of modifiers that may be selected from the group. A value of `null` means there is no maximum."},"ordinal":{"type":"integer","title":"Ordinal","description":"The display ordering of the group on its parent item or variant. Lower values appear first."},"modifiers":{"items":{"$ref":"#/components/schemas/Modifier"},"type":"array","title":"Modifiers","description":"The modifiers that belong to this group."}},"type":"object","required":["id","name","min_selections","max_selections","ordinal"],"title":"ItemModifierGroup","description":"A `ModifierGroup` as it appears attached to a specific item or variant.\n\nSame `id`, `name`, and selection rules as the underlying `ModifierGroup`, plus an\n`ordinal` that controls the display ordering of the group relative to other modifier\ngroups on the same item or variant; lower values appear before higher values. A group\ncan be attached at the item level (applies to all variants) or at the variant level\n(specific to that variant only).","example":{"id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","max_selections":2,"min_selections":0,"modifiers":[{"fixed_price":{"amount":500,"currency":"ZAR"},"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","is_selected_by_default":false,"modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Chips","ordinal":1,"pricing_strategy":"fixed_price","type":"product","variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Side Orders","ordinal":1}},"ItemOption":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the item option."},"name":{"type":"string","title":"Name","description":"The name of the item option."},"values":{"items":{"$ref":"#/components/schemas/ItemOptionValue"},"type":"array","title":"Values","description":"A list of values that form the item option."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The item option creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the item option was last modified in ISO 8601 format."}},"type":"object","required":["id","name","created_at","updated_at"],"title":"ItemOption","example":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757523968431-318ba3de-0f7c-47ca-b3c2-36a1cd5cac73","name":"Size","updated_at":"2024-11-19T16:27:23+00:00","values":[{"name":"Small"},{"name":"Medium"},{"name":"Large"}]}},"ItemOptionValue":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the item option value."}},"type":"object","required":["name"],"title":"ItemOptionValue","example":{"name":"Small"}},"ItemPriceOverride":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the price override."},"price":{"$ref":"#/components/schemas/Money","description":"The override price."},"location_ids":{"items":{"type":"string"},"type":"array","title":"Location Ids","description":"The location IDs this price override applies to."}},"type":"object","required":["id","price","location_ids"],"title":"ItemPriceOverride","example":{"id":"1700000000000-2c8e1f4a-5d6b-4e7f-8a9b-0c1d2e3f4a5b","location_ids":["1700000000000-9b3f7b3e-3b3f-4b3f-9b3f-3b3f7b3e9b3f"],"price":{"amount":4500,"currency":"ZAR"}}},"ItemTax":{"properties":{"name":{"type":"string","title":"Name","description":"A human-readable name for the tax."},"type":{"$ref":"#/components/schemas/TaxType","description":"The type of tax affects the method used to calculate the tax."},"percentage":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Percentage","description":"The tax rate to apply. For example, `15.00` corresponds to a tax rate of `15%`."}},"type":"object","required":["name","type","percentage"],"title":"ItemTax","example":{"name":"VAT","percentage":"15.00","type":"inclusive"}},"ItemUpdated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"item_id":{"type":"string","title":"Item Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","item_id","event_type"],"title":"ItemUpdated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"item.updated","item_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}},"ItemVariant":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the variant."},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku","description":"The SKU (stock keeping unit) of the variant."},"barcode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Barcode","description":"The barcode of the variant."},"price":{"$ref":"#/components/schemas/Money","description":"The price of the variant."},"is_enabled":{"type":"boolean","title":"Is Enabled","description":"Whether the variant is available as a purchase option in the Yoco Point of Sale (POS) app."},"selected_options":{"items":{"$ref":"#/components/schemas/SelectedOption"},"type":"array","title":"Selected Options","description":"The option values selected for this variant, ordered to match the item's `options`. Each entry pairs an option group name (e.g. `Size`) with the value chosen for this variant (e.g. `Small`)."},"modifier_groups":{"items":{"$ref":"#/components/schemas/ItemModifierGroup"},"type":"array","title":"Modifier Groups","description":"The modifier groups attached specifically to this variant."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The variant creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the variant was last modified in ISO 8601 format."},"price_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ItemPriceOverride"},"type":"array"},{"type":"null"}],"title":"Price Overrides","description":"The location-specific price overrides for this variant. Only populated when `price_overrides` is requested via the `expand` query parameter."}},"type":"object","required":["id","sku","barcode","price","is_enabled","created_at","updated_at"],"title":"ItemVariant","example":{"barcode":"12345678","created_at":"2024-11-19T15:27:02+00:00","id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6","is_enabled":true,"modifier_groups":[],"price":{"amount":3800,"currency":"ZAR"},"selected_options":[{"name":"Size","value":"Small"}],"sku":"FW-001","updated_at":"2024-11-19T16:27:23+00:00"}},"ListResponse_CapitalAdvance_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CapitalAdvance"},"type":"array","title":"Data","description":"A list of entities."}},"type":"object","required":["data"],"title":"ListResponse[CapitalAdvance]","example":{"data":[]}},"ListResponse_CapitalOffer_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CapitalOffer"},"type":"array","title":"Data","description":"A list of entities."}},"type":"object","required":["data"],"title":"ListResponse[CapitalOffer]","example":{"data":[]}},"ListResponse_WebhookEventDefinition_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookEventDefinition"},"type":"array","title":"Data","description":"A list of entities."}},"type":"object","required":["data"],"title":"ListResponse[WebhookEventDefinition]","example":{"data":[]}},"Location":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the location."},"name":{"type":"string","title":"Name","description":"The name of the location."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The location creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the location was last modified in ISO 8601 format."}},"type":"object","required":["id","name","created_at","updated_at"],"title":"Location","example":{"created_at":"2024-11-19T15:27:02+00:00","id":"1743683416648-616bc018-c572-430b-9c07-4e813ed03eb4","name":"Main Store","updated_at":"2024-11-19T16:27:23+00:00"}},"Media":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the media."},"type":{"$ref":"#/components/schemas/MediaType","description":"The type of media."},"mime_type":{"type":"string","title":"Mime Type","description":"The mime type indicates the format of the media."},"url":{"type":"string","title":"Url","description":"The URL of the media file."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The media creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the media was last modified in ISO 8601 format."}},"type":"object","required":["id","type","mime_type","url","created_at","updated_at"],"title":"Media","example":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"}},"MediaType":{"type":"string","enum":["image"],"title":"MediaType"},"Modifier":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the modifier."},"modifier_group_id":{"type":"string","title":"Modifier Group Id","description":"The unique identifier of the modifier group this modifier belongs to."},"type":{"$ref":"#/components/schemas/ModifierType","description":"The type of the modifier. `note` modifiers are text-only instructions (e.g. `Well-Done`). `product` modifiers are linked to a variant and may carry a price."},"name":{"type":"string","title":"Name","description":"The display name of the modifier."},"pricing_strategy":{"$ref":"#/components/schemas/PricingStrategy","description":"How the price of the modifier is determined when applied to an item."},"fixed_price":{"anyOf":[{"$ref":"#/components/schemas/Money"},{"type":"null"}],"description":"The fixed price of the modifier. Populated only when `pricing_strategy` is `fixed_price`."},"is_selected_by_default":{"type":"boolean","title":"Is Selected By Default","description":"Whether the modifier is selected by default when its group is shown to the customer."},"ordinal":{"type":"integer","title":"Ordinal","description":"The display ordering of the modifier within its group. Lower values appear first."},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id","description":"The unique identifier of the variant linked to this modifier. Populated only when `type` is `product`."}},"type":"object","required":["id","modifier_group_id","type","name","pricing_strategy","fixed_price","is_selected_by_default","ordinal","variant_id"],"title":"Modifier","description":"A customisation that a customer can apply to an item at sale time.\n\nA modifier always belongs to a single `ModifierGroup` (e.g. \"Side Orders\" or \"Doneness\").\nA `note` modifier is a text-only instruction such as \"Well-Done\" and never carries a price.\nA `product` modifier is linked to an item variant via `variant_id` and may apply a charge\ngoverned by `pricing_strategy`.","example":{"fixed_price":{"amount":500,"currency":"ZAR"},"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","is_selected_by_default":false,"modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Chips","ordinal":1,"pricing_strategy":"fixed_price","type":"product","variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}},"ModifierGroup":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the modifier group."},"name":{"type":"string","title":"Name","description":"The name of the modifier group."},"min_selections":{"type":"integer","title":"Min Selections","description":"The minimum number of modifiers that must be selected from the group. A value of `0` means the group is optional."},"max_selections":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Selections","description":"The maximum number of modifiers that may be selected from the group. A value of `null` means there is no maximum."},"modifiers":{"items":{"$ref":"#/components/schemas/Modifier"},"type":"array","title":"Modifiers","description":"The modifiers that belong to this group."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The modifier group creation date and time in ISO 8601 format."}},"type":"object","required":["id","name","min_selections","max_selections","created_at"],"title":"ModifierGroup","description":"A reusable collection of modifiers that share selection rules.\n\nEach group owns one or more `Modifier` options and defines `min_selections` and\n`max_selections` to constrain how many can be chosen at sale time. Groups exist\nindependently of items and are reused across the catalogue — a single \"Doneness\" group\ncan be attached to many products. When a group is attached to a product or variant for\nsale, the item-side view is `ItemModifierGroup`.","example":{"created_at":"2024-11-19T15:27:02+00:00","id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","max_selections":2,"min_selections":0,"modifiers":[{"fixed_price":{"amount":500,"currency":"ZAR"},"id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","is_selected_by_default":false,"modifier_group_id":"1729001234567-aa11bb22-3344-4cdd-99ee-1122334455ff","name":"Chips","ordinal":1,"pricing_strategy":"fixed_price","type":"product","variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Side Orders"}},"ModifierType":{"type":"string","enum":["note","product"],"title":"ModifierType","description":"`ModifierType` distinguishes between a note-style modifier and product-style modifier.\n\nA note-style modifier attaches a text instruction, such as \"medium-rare\"; where as a product-style\nmodifier attaches an additional variant to the item that may or may not impact the price."},"Money":{"properties":{"amount":{"type":"integer","format":"int32","title":"Amount","description":"The amount of money in the smallest denomination of the currency. For example, when the `currency` is `ZAR`, the `amount` is in cents."},"currency":{"type":"string","maxLength":3,"minLength":3,"title":"Currency","description":"The currency code in ISO 4217 format."}},"type":"object","required":["amount","currency"],"title":"Money","description":"`Money` represents a monetary value denoted by both an amount and a currency.\n\nThe `amount` is always going to be the smallest denomination of the given currency. As an example, when dealing\nwith South African Rands (ZAR), the amount is in cents.\neg: R150.45 is therefore represented by `Money(amount=15045, currency=\"ZAR\")`.","example":{"amount":1500,"currency":"ZAR"}},"Order":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the order."},"display_name":{"type":"string","title":"Display Name","description":"A human-friendly label for the order."},"order_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Number","description":"A human-friendly identifier for the order."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"A human-friendly identifier (customer name, table number, order number, etc) representing the order."},"currency":{"type":"string","title":"Currency","description":"The currency code in ISO 4217 format."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"An optional note attached to the order."},"location_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location Id","description":"The location at which the sale took place."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The order creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the order was last modified in ISO 8601 format."},"closed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Closed At","description":"The date and time the order was closed in ISO 8601 format."},"status":{"$ref":"#/components/schemas/OrderStatus","description":"The current state of the order."},"amounts":{"$ref":"#/components/schemas/OrderAmounts","description":"A collection of summarized amounts on the order."},"line_items":{"items":{"$ref":"#/components/schemas/OrderLineItem"},"type":"array","title":"Line Items","description":"A list of line items making up the order."},"total_taxes":{"items":{"$ref":"#/components/schemas/OrderTaxItem"},"type":"array","title":"Total Taxes","description":"A list of taxes across all line items aggregated by tax type."},"applied_discounts":{"items":{"$ref":"#/components/schemas/DiscountItem"},"type":"array","title":"Applied Discounts","description":"The discounts applicable to the order."},"payments":{"items":{"$ref":"#/components/schemas/Payment"},"type":"array","title":"Payments","description":"The payments that have been receipted against the order."},"refunds":{"items":{"$ref":"#/components/schemas/Refund"},"type":"array","title":"Refunds","description":"The refunds that have been issued against the order."},"returns":{"items":{"$ref":"#/components/schemas/Return"},"type":"array","title":"Returns","description":"A list of returns associated with this order."}},"type":"object","required":["id","display_name","order_number","name","currency","note","location_id","created_at","updated_at","closed_at","status","amounts"],"title":"Order","example":{"amounts":{"discount_amount":{"amount":2780,"currency":"ZAR"},"gross_amount":{"amount":16680,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"}},"applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"closed_at":"2024-11-19T16:27:23+00:00","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Order #10542623","id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","line_items":[{"applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"applied_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"discount_amount":{"amount":2780,"currency":"ZAR"},"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","item_type":"product","modifiers":[{"group_name":"Side Orders","group_ordinal":1,"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","name":"Chips","ordinal":1,"price":{"amount":500,"currency":"ZAR"},"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Men's Funky Blue T-Shirt - Medium","net_amount":{"amount":25020,"currency":"ZAR"},"note":"This is an optional note related to this item in the order.","quantity":"1.00","total_price":{"amount":13900,"currency":"ZAR"},"unit_price":{"amount":13900,"currency":"ZAR"},"variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6"}],"location_id":"93e230af-afc5-4839-a471-ba52f71f9447","name":"Table 42","note":"This is a very important table.","order_number":"10542623","payments":[{"amount_excl_tip":{"amount":25000,"currency":"ZAR"},"checkout_id":"ch_J2xYWl4m7B6DsKAPCM9SRDEd","client_transaction_id":"5f29b4cf-5650-4c71-b7e5-f70eb892e55f","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Payment receipt #491352","external_id":"order-123","id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","note":"This is a note on this payment.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","payment_method":"card","payment_source":"payment_link","receipt_number":"491352","refunded_amount":{"amount":0,"currency":"ZAR"},"refunds":[{"client_transaction_id":"rfd_765fde5ded7bxd","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Refund receipt #491352","id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","note":"This is a note on this refund.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","payment_method":"card","processed_at":"2024-11-20T16:27:23+00:00","processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"receipt_number":"491352","refund_type":"auth_reversal","refunded_processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"status":"approved","total_amount":{"amount":4500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}],"status":"approved","tip_amount":{"amount":2500,"currency":"ZAR"},"total_amount":{"amount":27500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}],"refunds":[{"client_transaction_id":"rfd_765fde5ded7bxd","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Refund receipt #491352","id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","note":"This is a note on this refund.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","payment_method":"card","processed_at":"2024-11-20T16:27:23+00:00","processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"receipt_number":"491352","refund_type":"auth_reversal","refunded_processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"status":"approved","total_amount":{"amount":4500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}],"returns":[{"amounts":{"discount_amount":{"amount":2780,"currency":"ZAR"},"gross_amount":{"amount":16680,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"}},"returned_applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"returned_line_items":[{"applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"applied_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"discount_amount":{"amount":2780,"currency":"ZAR"},"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","item_type":"product","modifiers":[{"group_name":"Side Orders","group_ordinal":1,"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","name":"Chips","ordinal":1,"price":{"amount":500,"currency":"ZAR"},"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Men's Funky Blue T-Shirt - Medium","net_amount":{"amount":25020,"currency":"ZAR"},"note":"This is an optional note related to this item in the order.","quantity":"1.00","total_price":{"amount":13900,"currency":"ZAR"},"unit_price":{"amount":13900,"currency":"ZAR"},"variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6"}],"returned_total_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"source_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d"}],"status":"completed","total_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"updated_at":"2024-11-19T16:27:23+00:00"}},"OrderAmounts":{"properties":{"gross_amount":{"$ref":"#/components/schemas/Money","description":"The gross amount (total before discount)."},"discount_amount":{"$ref":"#/components/schemas/Money","description":"The total amount of discounts."},"tip_amount":{"$ref":"#/components/schemas/Money","description":"The total tip amount."},"net_amount":{"$ref":"#/components/schemas/Money","description":"The total amount of money to change hands."},"tax_amount":{"$ref":"#/components/schemas/Money","description":"The total tax amount."}},"type":"object","required":["gross_amount","discount_amount","tip_amount","net_amount","tax_amount"],"title":"OrderAmounts","example":{"discount_amount":{"amount":2780,"currency":"ZAR"},"gross_amount":{"amount":16680,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"}}},"OrderCancelled":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","event_type"],"title":"OrderCancelled","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"order.cancelled","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3"}},"OrderCompleted":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","event_type"],"title":"OrderCompleted","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"order.completed","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3"}},"OrderCreated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","event_type"],"title":"OrderCreated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"order.created","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3"}},"OrderLineItem":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the item in the order."},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id","description":"An optional reference to the variant of a product. If unrelated to a product, such as when charging a custom amount on a payment terminal, this will be empty."},"name":{"type":"string","title":"Name","description":"A human-readable name for the line item, such as the name of a specific variation of a product."},"quantity":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Quantity","description":"The number of units ordered. If `quantity` is a whole number and `quantity_unit` is not specified, then `quantity` denotes an item count (eg: 4 x apples). If `quantity` isa  whole number or a decimal number, and `quantity_unit` is specified, then `quantity` denotes a measurement (eg: 1.45 kg)."},"quantity_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quantity Unit","description":"The unit that the `quantity` is measured in."},"item_type":{"$ref":"#/components/schemas/OrderLineItemItemType","description":"The type of line item."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"An optional note attached to the item."},"unit_price":{"$ref":"#/components/schemas/Money","description":"The unit price is the price of 1 unit of the item."},"total_price":{"$ref":"#/components/schemas/Money","description":"The total price is the unit price multiplied by the quantity."},"discount_amount":{"$ref":"#/components/schemas/Money","description":"The total amount of discounts on the item."},"net_amount":{"$ref":"#/components/schemas/Money","description":"The total amount of money to change hands."},"applied_taxes":{"items":{"$ref":"#/components/schemas/OrderTaxItem"},"type":"array","title":"Applied Taxes","description":"The taxes applicable to the item."},"applied_discounts":{"items":{"$ref":"#/components/schemas/DiscountItem"},"type":"array","title":"Applied Discounts","description":"The discounts applicable to the item."},"modifiers":{"items":{"$ref":"#/components/schemas/OrderLineItemModifier"},"type":"array","title":"Modifiers","description":"The modifiers selected on the item at the time of sale."}},"type":"object","required":["id","variant_id","name","quantity","quantity_unit","item_type","note","unit_price","total_price","discount_amount","net_amount","applied_taxes","applied_discounts"],"title":"OrderLineItem","example":{"applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"applied_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"discount_amount":{"amount":2780,"currency":"ZAR"},"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","item_type":"product","modifiers":[{"group_name":"Side Orders","group_ordinal":1,"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","name":"Chips","ordinal":1,"price":{"amount":500,"currency":"ZAR"},"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Men's Funky Blue T-Shirt - Medium","net_amount":{"amount":25020,"currency":"ZAR"},"note":"This is an optional note related to this item in the order.","quantity":"1.00","total_price":{"amount":13900,"currency":"ZAR"},"unit_price":{"amount":13900,"currency":"ZAR"},"variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6"}},"OrderLineItemItemType":{"type":"string","enum":["custom_amount","gift_voucher","product"],"title":"OrderLineItemItemType","description":"`OrderLineItemItemType` represents the type of line item within an order.\n\nA known item added via the POS, such as a cup of coffee, will have a type of `product`.  If an amount is an\narbitrary amount, it will have type `custom_amount`.  The purchase of a gift voucher, redeemable at a later\ntime, will have a type of `gift_voucher`."},"OrderLineItemModifier":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the line item modifier."},"modifier_id":{"type":"string","title":"Modifier Id","description":"The unique identifier of the source modifier. May reference a modifier that has since been deleted."},"group_name":{"type":"string","title":"Group Name","description":"The display name of the modifier group at sale time."},"group_ordinal":{"type":"integer","title":"Group Ordinal","description":"The display ordering of the modifier group at sale time."},"name":{"type":"string","title":"Name","description":"The display name of the modifier at sale time."},"variant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant Id","description":"The unique identifier of the linked variant, when the source modifier was of type `product`. May reference a variant that has since been deleted."},"price":{"anyOf":[{"$ref":"#/components/schemas/Money"},{"type":"null"}],"description":"The price applied by the modifier on the line item. `null` for free or note-style modifiers."},"ordinal":{"type":"integer","title":"Ordinal","description":"The display ordering of the modifier within its group at sale time."}},"type":"object","required":["id","modifier_id","group_name","group_ordinal","name","variant_id","price","ordinal"],"title":"OrderLineItemModifier","description":"A modifier selection captured on an order line item at the time of sale.\n\nThis is a point-in-time snapshot, not a live view of the catalogue. Display fields —\n`group_name`, `name`, and `price` — reflect what the customer was charged and shown\nwhen the sale was processed, even if the underlying modifier or its group has been\nrenamed or deleted since. `modifier_id` is a best-effort reference back to the source\n`Modifier`; the owning modifier group is reachable via `Modifier.modifier_group_id` on\nthe resolved modifier when it still exists.","example":{"group_name":"Side Orders","group_ordinal":1,"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","name":"Chips","ordinal":1,"price":{"amount":500,"currency":"ZAR"},"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}},"OrderStatus":{"type":"string","enum":["cancelled","completed","open"],"title":"OrderStatus","description":"An order transitions through various states throughout its lifecycle.\n\nAn order is always created in a `open` state.  From there, it will move to a terminal state which will\nbe one of either `completed` or `cancelled`.\n\nThe following transitions are possible:\n- open -> completed\n- open -> cancelled"},"OrderTaxItem":{"properties":{"name":{"type":"string","title":"Name","description":"A human-readable name for the tax."},"type":{"$ref":"#/components/schemas/TaxType","description":"The type of tax affects the method used to calculate the tax."},"percentage":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Percentage","description":"The tax rate to apply to the taxable amount. For example, `15.00` corresponds to a tax rate of `15%`."},"tax_amount":{"$ref":"#/components/schemas/Money","description":"The calculated amount of tax."},"scope":{"$ref":"#/components/schemas/TaxScope","description":"The scope that the tax is applicable to."}},"type":"object","required":["name","type","percentage","tax_amount","scope"],"title":"OrderTaxItem","example":{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}},"OrderUpdated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","event_type"],"title":"OrderUpdated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"order.updated","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3"}},"PaginatedResponse_Annotated_Union_ProductItem__ServiceItem___FieldInfo_annotation_NoneType__required_True__discriminator__type____":{"properties":{"data":{"items":{"oneOf":[{"$ref":"#/components/schemas/ProductItem"},{"$ref":"#/components/schemas/ServiceItem"}],"discriminator":{"propertyName":"type","mapping":{"product":"#/components/schemas/ProductItem","service":"#/components/schemas/ServiceItem"}}},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Annotated[Union[ProductItem, ServiceItem], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_ItemBrand_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ItemBrand"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[ItemBrand]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_ItemCategory_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ItemCategory"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[ItemCategory]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_Location_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Location"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Location]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_ModifierGroup_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ModifierGroup"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[ModifierGroup]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_Order_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Order"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Order]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_PaymentLink_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PaymentLink"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[PaymentLink]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_Payment_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Payment"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Payment]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_PayoutEntry_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PayoutEntry"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[PayoutEntry]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_Payout_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Payout"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Payout]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_Refund_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Refund"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[Refund]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PaginatedResponse_WebhookSubscription_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WebhookSubscription"},"type":"array","title":"Data","description":"A list of paginated entities."},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor","description":"A pagination cursor that can be used to retrieve the next set of results."}},"type":"object","required":["data","next_cursor"],"title":"PaginatedResponse[WebhookSubscription]","example":{"data":[],"next_cursor":"1323935095007282836"}},"PanEntryMode":{"type":"string","enum":["bar_code","chip_with_cvv","chip_without_cvv","contactless_icc","contactless_mag_stripe","mag_stripe_with_cvv","magnetic_stripe","manual","ocr","unknown"],"title":"PanEntryMode"},"ParentItemCategory":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the category."},"name":{"type":"string","title":"Name","description":"The name of the category."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the category."},"image":{"anyOf":[{"$ref":"#/components/schemas/Media"},{"type":"null"}],"description":"The image to show in the Yoco Point of Sale (POS) app."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The category creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the category was last modified in ISO 8601 format."}},"type":"object","required":["id","name","description","image","created_at","updated_at"],"title":"ParentItemCategory","example":{"created_at":"2024-11-19T15:27:02+00:00","description":"A home for all our beverages.","id":"1757511225824-ab79f3ee-5a21-4bca-a060-ef27d9aae788","image":{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"},"name":"Beverages","updated_at":"2024-11-19T16:27:23+00:00"}},"Payment":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the payment."},"client_transaction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Transaction Id","description":"The identifier provided when creating the transaction via the SDK."},"display_name":{"type":"string","title":"Display Name","description":"A human-friendly label for the payment."},"receipt_number":{"type":"string","title":"Receipt Number","description":"The receipt number of the payment."},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id","description":"A reference to the original order."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The payment creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the payment was last modified in ISO 8601 format."},"currency":{"type":"string","title":"Currency","description":"The currency code in ISO 4217 format."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"An optional note attached to the payment."},"amount_excl_tip":{"$ref":"#/components/schemas/Money","description":"The payment amount excluding the amount designated towards the tip."},"tip_amount":{"$ref":"#/components/schemas/Money","description":"The payment amount designated towards the tip."},"total_amount":{"$ref":"#/components/schemas/Money","description":"The total payment amount."},"refunded_amount":{"$ref":"#/components/schemas/Money","description":"The amount of this payment that has been refunded, if any."},"status":{"$ref":"#/components/schemas/PaymentStatus","description":"The current state of the payment."},"payment_method":{"$ref":"#/components/schemas/PaymentMethod","description":"The method used to make the payment."},"payment_source":{"$ref":"#/components/schemas/PaymentSource","description":"The source of the payment."},"refunds":{"items":{"$ref":"#/components/schemas/Refund"},"type":"array","title":"Refunds","description":"The refunds that have been issued against the payment."},"processing_fees":{"items":{"$ref":"#/components/schemas/Fee"},"type":"array","title":"Processing Fees","description":"The transaction fees that have been charged against the payment."},"checkout_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Id","description":"The checkout ID for online payments. Only present for payments from online checkouts."},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"The customer-defined identifier provided when creating the checkout. Only present for payments from online checkouts when an external ID has been specified."}},"type":"object","required":["id","client_transaction_id","display_name","receipt_number","order_id","created_at","updated_at","currency","note","amount_excl_tip","tip_amount","total_amount","refunded_amount","status","payment_method","payment_source","refunds","processing_fees","checkout_id"],"title":"Payment","example":{"amount_excl_tip":{"amount":25000,"currency":"ZAR"},"checkout_id":"ch_J2xYWl4m7B6DsKAPCM9SRDEd","client_transaction_id":"5f29b4cf-5650-4c71-b7e5-f70eb892e55f","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Payment receipt #491352","external_id":"order-123","id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","note":"This is a note on this payment.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","payment_method":"card","payment_source":"payment_link","receipt_number":"491352","refunded_amount":{"amount":0,"currency":"ZAR"},"refunds":[{"client_transaction_id":"rfd_765fde5ded7bxd","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Refund receipt #491352","id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","note":"This is a note on this refund.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","payment_method":"card","processed_at":"2024-11-20T16:27:23+00:00","processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"receipt_number":"491352","refund_type":"auth_reversal","refunded_processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"status":"approved","total_amount":{"amount":4500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}],"status":"approved","tip_amount":{"amount":2500,"currency":"ZAR"},"total_amount":{"amount":27500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}},"PaymentCreated":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"payment_id":{"type":"string","title":"Payment Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","payment_id","event_type"],"title":"PaymentCreated","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"payment.created","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3","payment_id":"d2ff5a9a-0998-46e2-aebe-2c72c3ddde1f"}},"PaymentLink":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the payment link."},"url":{"type":"string","title":"Url","description":"The payment link."},"customer_reference":{"type":"string","title":"Customer Reference","description":"The customer's name or reference that will appear on the payment page."},"customer_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Description","description":"An optional description that will appear on the payment page."},"status":{"$ref":"#/components/schemas/PaymentLinkStatus","description":"The current state of the payment link."},"order_id":{"type":"string","title":"Order Id","description":"A reference to the original order."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The payment link creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the payment link was last modified in ISO 8601 format."}},"type":"object","required":["id","url","customer_reference","customer_description","status","order_id","created_at","updated_at"],"title":"PaymentLink","example":{"created_at":"2024-11-19T15:27:02+00:00","customer_description":"This description is visible to the customer on the payment page.","customer_reference":"Peter Parker","id":"1743683416648-616bc018-c572-430b-9c07-4e813ed03eb4","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","status":"pending","updated_at":"2024-11-19T16:27:23+00:00","url":"https://pay.yoco.com/r/dRggEC"}},"PaymentLinkStatus":{"type":"string","enum":["cancelled","paid","pending"],"title":"PaymentLinkStatus","description":"A payment link transitions through various states throughout its lifecycle.\n\nA payment link is always created in a `pending` state.  From there, it will move to a terminal state which will\nbe one of either `paid` or `cancelled`.\n\nThe following transitions are possible:\n- pending -> paid\n- pending -> cancelled"},"PaymentMethod":{"type":"string","enum":["card","cash","instant_eft","gift_voucher","other"],"title":"PaymentMethod"},"PaymentRefunded":{"properties":{"business_id":{"type":"string","title":"Business Id"},"order_id":{"type":"string","title":"Order Id"},"payment_id":{"type":"string","title":"Payment Id"},"event_type":{"type":"string","title":"Event Type"}},"type":"object","required":["business_id","order_id","payment_id","event_type"],"title":"PaymentRefunded","example":{"business_id":"f3f777bb-ca3c-4638-bc79-8fcf0fd0f8f1","event_type":"payment.refunded","order_id":"e13ed7f6-56a5-42f4-be6b-f87063ffd8f3","payment_id":"d2ff5a9a-0998-46e2-aebe-2c72c3ddde1f"}},"PaymentSource":{"type":"string","enum":["card_machine","checkout","invoice","other","payment_link","shopify","wix","woocommerce"],"title":"PaymentSource"},"PaymentStatus":{"type":"string","enum":["approved","cancelled","failed","pending"],"title":"PaymentStatus"},"Payout":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the payout."},"status":{"$ref":"#/components/schemas/PayoutStatus","description":"The current state of the payout."},"payout_type":{"$ref":"#/components/schemas/PayoutType","description":"The type of payout."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The payout creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the payout was last modified in ISO 8601 format."},"gross_amount":{"$ref":"#/components/schemas/Money","description":"The gross amount of the payout."},"capital_repayment_amount":{"$ref":"#/components/schemas/Money","description":"The amount deducted and paid back towards a cash advance."},"fee_amount":{"$ref":"#/components/schemas/Money","description":"The fee associated with this payout."},"net_amount":{"$ref":"#/components/schemas/Money","description":"The net proceeds of this payout after any fees & deductions."},"payout_fees":{"items":{"$ref":"#/components/schemas/Fee"},"type":"array","title":"Payout Fees","description":"A list of fees associated with the payout."}},"type":"object","required":["id","status","payout_type","created_at","updated_at","gross_amount","capital_repayment_amount","fee_amount","net_amount","payout_fees"],"title":"Payout","example":{"capital_repayment_amount":{"amount":250,"currency":"ZAR"},"created_at":"2024-11-19T15:27:02+00:00","fee_amount":{"amount":350,"currency":"ZAR"},"gross_amount":{"amount":12000,"currency":"ZAR"},"id":"1744288539-57db0a32-3cae-40af-a328-b22a09cfcb94","net_amount":{"amount":11400,"currency":"ZAR"},"payout_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"payout_type":"standard","status":"paid","updated_at":"2024-11-19T16:27:23+00:00"}},"PayoutEntry":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the payout entry."},"client_transaction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Transaction Id","description":"The identifier provided when creating the transaction via the SDK."},"payout_id":{"type":"string","title":"Payout Id","description":"A reference to the payout that this entry is a part of."},"type":{"$ref":"#/components/schemas/PayoutEntryType","description":"The type of payout entry."},"gross_amount":{"$ref":"#/components/schemas/Money","description":"The gross amount of this payout entry."},"capital_repayment_amount":{"$ref":"#/components/schemas/Money","description":"The amount deducted and paid back towards a cash advance."},"fee_amount":{"$ref":"#/components/schemas/Money","description":"The fee associated with this payout entry."},"net_amount":{"$ref":"#/components/schemas/Money","description":"The net proceeds of this payout entry after any fees & deductions."}},"type":"object","required":["id","client_transaction_id","payout_id","type","gross_amount","capital_repayment_amount","fee_amount","net_amount"],"title":"PayoutEntry","example":{"capital_repayment_amount":{"amount":250,"currency":"ZAR"},"client_transaction_id":"rfd_765fde5ded7bxd","fee_amount":{"amount":350,"currency":"ZAR"},"gross_amount":{"amount":12000,"currency":"ZAR"},"id":"1744289052-a70682ae-7376-404c-9859-3aa100322fa0","net_amount":{"amount":11400,"currency":"ZAR"},"payout_id":"1744288539-57db0a32-3cae-40af-a328-b22a09cfcb94","type":"payment"}},"PayoutEntryType":{"type":"string","enum":["adjustment","capital","dispute","fee","instant_payout","loyalty","payment","refund","rebate"],"title":"PayoutEntryType"},"PayoutStatus":{"type":"string","enum":["failed","paid","sent","unpaid"],"title":"PayoutStatus"},"PayoutType":{"type":"string","enum":["fast","instant","standard","weekly"],"title":"PayoutType"},"PricingStrategy":{"type":"string","enum":["fixed_price","free","product"],"title":"PricingStrategy","description":"`PricingStrategy` determines how the price of a modifier is calculated when applied to an item.\n\n- `free` — the modifier does not change the price of the item.\n- `fixed_price` — the modifier applies the price set in `fixed_price`.\n- `product` — the modifier inherits the price of its linked variant (`variant_id`)."},"ProductItem":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the item."},"name":{"type":"string","title":"Name","description":"The name of the item."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the item."},"default_price":{"$ref":"#/components/schemas/Money","description":"The default price of the item."},"is_taxable":{"type":"boolean","title":"Is Taxable","description":"Whether the item has taxes applied to it."},"taxes":{"items":{"$ref":"#/components/schemas/ItemTax"},"type":"array","title":"Taxes","description":"The taxes applied to the item."},"images":{"items":{"$ref":"#/components/schemas/Media"},"type":"array","title":"Images","description":"A list of images associated with the item."},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id","description":"The unique identifier of the category the item belongs to."},"category":{"anyOf":[{"$ref":"#/components/schemas/ItemCategory"},{"type":"null"}],"description":"The category the item belongs to. Only populated when `category` is requested via the `expand` query parameter."},"options":{"items":{"$ref":"#/components/schemas/ItemOption"},"type":"array","title":"Options","description":"The item options associated with the item."},"has_multiple_variants":{"type":"boolean","title":"Has Multiple Variants","description":"Whether the item has more than one variant."},"variants":{"items":{"$ref":"#/components/schemas/ItemVariant"},"type":"array","title":"Variants","description":"The variants of the item."},"modifier_groups":{"items":{"$ref":"#/components/schemas/ItemModifierGroup"},"type":"array","title":"Modifier Groups","description":"The modifier groups attached to this item."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The item creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the item was last modified in ISO 8601 format."},"location_availability":{"anyOf":[{"$ref":"#/components/schemas/ItemLocationAvailability"},{"type":"null"}],"description":"The location availability configuration for this item. Only populated when `location_availability` is requested via the `expand` query parameter."},"price_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ItemPriceOverride"},"type":"array"},{"type":"null"}],"title":"Price Overrides","description":"The location-specific price overrides for this item's default price. Only populated when `price_overrides` is requested via the `expand` query parameter."},"type":{"type":"string","const":"product","title":"Type","description":"Discriminator value identifying this item as a physical product."},"brand_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Id","description":"The unique identifier of the brand the product belongs to."},"brand":{"anyOf":[{"$ref":"#/components/schemas/ItemBrand"},{"type":"null"}],"description":"The brand of the product. Only populated when `brand` is requested via the `expand` query parameter."}},"type":"object","required":["id","name","description","default_price","is_taxable","category_id","has_multiple_variants","created_at","updated_at","type","brand_id"],"title":"ProductItem","example":{"brand_id":"1757511249592-ab46acf9-7c86-4ee0-92b9-6b43e1429337","category_id":"1757511249593-dd25e17c-5541-4276-a078-8c3dcca296de","created_at":"2024-11-19T15:27:02+00:00","default_price":{"amount":3800,"currency":"ZAR"},"description":"A rich espresso with silky steamed milk and microfoam, smooth and balanced.","has_multiple_variants":false,"id":"1584347797665-e75edf46-394c-446a-8d25-5a6e0f244cef","images":[{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"}],"is_taxable":true,"modifier_groups":[],"name":"Flat White","options":[],"taxes":[{"name":"VAT","percentage":"15.00","type":"inclusive"}],"type":"product","updated_at":"2024-11-19T16:27:23+00:00","variants":[]}},"Refund":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the refund."},"client_transaction_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Transaction Id","description":"The identifier provided when creating the transaction via the SDK."},"display_name":{"type":"string","title":"Display Name","description":"A human-friendly label for the refund."},"receipt_number":{"type":"string","title":"Receipt Number","description":"The receipt number of the refund."},"payment_id":{"type":"string","title":"Payment Id","description":"A reference to the original payment."},"order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Id","description":"A reference to the refund order."},"original_order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Order Id","description":"A reference to the original order."},"order_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Order Number","description":"A human-friendly identifier for the refund order."},"original_order_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Order Number","description":"A human-friendly identifier for the original order."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The refund creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the refund was last modified in ISO 8601 format."},"currency":{"type":"string","title":"Currency","description":"The currency code in ISO 4217 format."},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"An optional note attached to the refund."},"total_amount":{"$ref":"#/components/schemas/Money","description":"The amount of money refunded to the buyer."},"status":{"$ref":"#/components/schemas/RefundStatus","description":"The current state of the refund."},"processing_fees":{"items":{"$ref":"#/components/schemas/Fee"},"type":"array","title":"Processing Fees","description":"The transaction fees that have been charged against the refund."},"processed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processed At","description":"The date and time the refund was processed in ISO 8601 format."},"payment_method":{"$ref":"#/components/schemas/PaymentMethod","description":"The method used to refund the payment."},"refunded_processing_fees":{"items":{"$ref":"#/components/schemas/Fee"},"type":"array","title":"Refunded Processing Fees","description":"The transaction fees that have been refunded."},"refund_type":{"$ref":"#/components/schemas/RefundType","description":"The type of refund."}},"type":"object","required":["id","client_transaction_id","display_name","receipt_number","payment_id","order_id","original_order_id","order_number","original_order_number","created_at","updated_at","currency","note","total_amount","status","processing_fees","processed_at","payment_method","refunded_processing_fees","refund_type"],"title":"Refund","example":{"client_transaction_id":"rfd_765fde5ded7bxd","created_at":"2024-11-19T15:27:02+00:00","currency":"ZAR","display_name":"Refund receipt #491352","id":"1732188199292-2a8752ab-db45-4507-9d85-fcc6049beef3","note":"This is a note on this refund.","order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d","original_order_number":"10542623","payment_id":"1732194482873-c777dc85-035e-40de-9820-765fde5ded7b","payment_method":"card","processed_at":"2024-11-20T16:27:23+00:00","processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"receipt_number":"491352","refund_type":"auth_reversal","refunded_processing_fees":[{"amount":{"amount":27800,"currency":"ZAR"},"type":"initial"}],"status":"approved","total_amount":{"amount":4500,"currency":"ZAR"},"updated_at":"2024-11-19T16:27:23+00:00"}},"RefundStatus":{"type":"string","enum":["approved","failed","pending","rejected"],"title":"RefundStatus"},"RefundType":{"type":"string","enum":["auth_reversal","credit_return","other"],"title":"RefundType"},"Return":{"properties":{"returned_line_items":{"items":{"$ref":"#/components/schemas/OrderLineItem"},"type":"array","title":"Returned Line Items","description":"A list of line items from the original order that have been returned."},"returned_total_taxes":{"items":{"$ref":"#/components/schemas/OrderTaxItem"},"type":"array","title":"Returned Total Taxes","description":"A list of returned taxes across all line items aggregated by tax type."},"returned_applied_discounts":{"items":{"$ref":"#/components/schemas/DiscountItem"},"type":"array","title":"Returned Applied Discounts","description":"The discounts applicable to the return."},"source_order_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Order Id","description":"The unique identifier of the original order that this return was created from."},"amounts":{"$ref":"#/components/schemas/OrderAmounts","description":"A collection of summarized amounts on the return."}},"type":"object","required":["returned_line_items","returned_total_taxes","returned_applied_discounts","source_order_id","amounts"],"title":"Return","example":{"amounts":{"discount_amount":{"amount":2780,"currency":"ZAR"},"gross_amount":{"amount":16680,"currency":"ZAR"},"net_amount":{"amount":13900,"currency":"ZAR"},"tax_amount":{"amount":32263,"currency":"ZAR"},"tip_amount":{"amount":0,"currency":"ZAR"}},"returned_applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"returned_line_items":[{"applied_discounts":[{"discount_amount":{"amount":3000,"currency":"ZAR"},"name":"Item Discount","percentage":"10.00","scope":"order","type":"fixed_percentage"}],"applied_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"discount_amount":{"amount":2780,"currency":"ZAR"},"id":"1585232943683-bc402745-df17-486e-b583-3dfedcbc8b53","item_type":"product","modifiers":[{"group_name":"Side Orders","group_ordinal":1,"id":"1729101234567-bem-aa11-4bbb-9ccc-112233445566","modifier_id":"1729001234890-cc33dd44-9876-4123-aabb-2233445566ff","name":"Chips","ordinal":1,"price":{"amount":500,"currency":"ZAR"},"variant_id":"1719321844551-c61b8a54-902e-4f3d-9d70-8b1e2f5b1a90:small"}],"name":"Men's Funky Blue T-Shirt - Medium","net_amount":{"amount":25020,"currency":"ZAR"},"note":"This is an optional note related to this item in the order.","quantity":"1.00","total_price":{"amount":13900,"currency":"ZAR"},"unit_price":{"amount":13900,"currency":"ZAR"},"variant_id":"1600421176247-798d940c-fce6-44b2-9872-8bb28005ec2a:1718365491897-f6a94fdc-46e4-477f-9b53-be85e35fc7a6"}],"returned_total_taxes":[{"name":"VAT","percentage":"15.00","scope":"line_item","tax_amount":{"amount":3000,"currency":"ZAR"},"type":"inclusive"}],"source_order_id":"1585232943682-9f7e2dbe-a09e-4fa8-aa4a-72290c513f1d"}},"RotateWebhookSubscriptionSecretResponse":{"properties":{"secret":{"type":"string","title":"Secret","description":"The new secret used to verify the payload of a webhook."}},"type":"object","required":["secret"],"title":"RotateWebhookSubscriptionSecretResponse","example":{"secret":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD"}},"SelectedOption":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the item option."},"value":{"type":"string","title":"Value","description":"The value of the option for this variant."}},"type":"object","required":["name","value"],"title":"SelectedOption","example":{"name":"Size","value":"Small"}},"SendTestWebhookEventRequest":{"properties":{"event_type":{"$ref":"#/components/schemas/WebhookEventType","description":"The event type to send."}},"type":"object","required":["event_type"],"title":"SendTestWebhookEventRequest","example":{"event_type":"payment.created"}},"SendTestWebhookEventResponse":{"properties":{"message_id":{"type":"string","title":"Message Id","description":"The unique message identifier of the webhook event."}},"type":"object","required":["message_id"],"title":"SendTestWebhookEventResponse","example":{"message_id":"msg_1srOrx2ZWZBpBUvZwXKQmoEYga2"}},"ServiceItem":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the item."},"name":{"type":"string","title":"Name","description":"The name of the item."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"A description of the item."},"default_price":{"$ref":"#/components/schemas/Money","description":"The default price of the item."},"is_taxable":{"type":"boolean","title":"Is Taxable","description":"Whether the item has taxes applied to it."},"taxes":{"items":{"$ref":"#/components/schemas/ItemTax"},"type":"array","title":"Taxes","description":"The taxes applied to the item."},"images":{"items":{"$ref":"#/components/schemas/Media"},"type":"array","title":"Images","description":"A list of images associated with the item."},"category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category Id","description":"The unique identifier of the category the item belongs to."},"category":{"anyOf":[{"$ref":"#/components/schemas/ItemCategory"},{"type":"null"}],"description":"The category the item belongs to. Only populated when `category` is requested via the `expand` query parameter."},"options":{"items":{"$ref":"#/components/schemas/ItemOption"},"type":"array","title":"Options","description":"The item options associated with the item."},"has_multiple_variants":{"type":"boolean","title":"Has Multiple Variants","description":"Whether the item has more than one variant."},"variants":{"items":{"$ref":"#/components/schemas/ItemVariant"},"type":"array","title":"Variants","description":"The variants of the item."},"modifier_groups":{"items":{"$ref":"#/components/schemas/ItemModifierGroup"},"type":"array","title":"Modifier Groups","description":"The modifier groups attached to this item."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The item creation date and time in ISO 8601 format."},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"The date and time the item was last modified in ISO 8601 format."},"location_availability":{"anyOf":[{"$ref":"#/components/schemas/ItemLocationAvailability"},{"type":"null"}],"description":"The location availability configuration for this item. Only populated when `location_availability` is requested via the `expand` query parameter."},"price_overrides":{"anyOf":[{"items":{"$ref":"#/components/schemas/ItemPriceOverride"},"type":"array"},{"type":"null"}],"title":"Price Overrides","description":"The location-specific price overrides for this item's default price. Only populated when `price_overrides` is requested via the `expand` query parameter."},"type":{"type":"string","const":"service","title":"Type","description":"Discriminator value identifying this item as a service."}},"type":"object","required":["id","name","description","default_price","is_taxable","category_id","has_multiple_variants","created_at","updated_at","type"],"title":"ServiceItem","example":{"category_id":"1742394821447-c5f1a902-6d77-4f14-bbe2-09d2c4fa5e88","created_at":"2024-11-19T15:27:02+00:00","default_price":{"amount":25000,"currency":"ZAR"},"description":"A classic men's haircut and style finish, including a wash and blow-dry.","has_multiple_variants":false,"id":"1742394820001-a27d3f6e-4b18-4c92-9e51-2a8fbb4d31c7","images":[{"created_at":"2024-11-19T15:27:02+00:00","id":"1757533814961-58f649da-81e3-4877-8769-f407cfba8aff","mime_type":"image/jpeg","type":"image","updated_at":"2024-11-19T16:27:23+00:00","url":"https://images.yoco.com/foo/bar.jpg"}],"is_taxable":true,"modifier_groups":[],"name":"Men's Haircut","options":[],"taxes":[{"name":"VAT","percentage":"15.00","type":"inclusive"}],"type":"service","updated_at":"2024-11-19T16:27:23+00:00","variants":[]}},"TaxScope":{"type":"string","enum":["line_item","order"],"title":"TaxScope","description":"`TaxScope` can be either `order` or `line_item` and indicates whether the given tax is applicable to\nthe entire order, or just a particular line item in the order."},"TaxType":{"type":"string","enum":["additive","inclusive"],"title":"TaxType","description":"`TaxType` can be either `additive` or `inclusive` and affects how tax is calculated.\n\nFor `additive` tax, the tax is calculated on top of the price. For example, an item which costs R100.00 with a 15%\nadditive tax has a total cost to the buyer of R115.00 (R100.00 * 1.15). The tax amount is therefore\nR115.00 - R100.00 = R15.00.\n\nFor `inclusive` tax, the tax is included in the price. For example, an item which costs R115.00 with a 15%\ninclusive tax has a total cost to the buyer of R115.00. The tax amount is R15.00 (R115.00 * 15/115) whilst the\ntaxable amount is R100 (R115.00 - R15.00)."},"Terminal":{"properties":{"model":{"type":"string","title":"Model","description":"Payment terminal model name."},"serial_number":{"type":"string","title":"Serial Number","description":"Terminal's unique serial number."}},"type":"object","required":["model","serial_number"],"title":"Terminal","example":{"model":"Neo Touch","serial_number":"52303251110"}},"UpdateWebhookSubscriptionRequest":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":255,"minLength":1},{"type":"null"}],"title":"Name","description":"A friendly name to describe the subscription."},"event_types":{"anyOf":[{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array","minItems":1},{"type":"null"}],"title":"Event Types","description":"A list of event types to bind the subscription to."},"notification_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"format":"uri","title":"Notification Url","description":"The URL to be notified when an event occurs."},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled","description":"A flag to enable/disable the subscription."}},"type":"object","title":"UpdateWebhookSubscriptionRequest","example":{"enabled":false}},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WebPOSDevice":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique ID for the Web POS device."},"name":{"type":"string","title":"Name","description":"The friendly POS device name."}},"type":"object","required":["id","name"],"title":"WebPOSDevice","example":{"id":"4cf28172-3bf5-48cd-8c55-e83e1a976992","name":"My Web POS"}},"WebPOSPayment":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The unique ID for the Web POS payment. Can be used to fetch Web POS payment."},"status":{"$ref":"#/components/schemas/WebPOSPaymentStatus","description":"The status of the Web POS payment."},"redirect_url":{"type":"string","title":"Redirect Url","description":"The URL that can be loaded into an iFrame, window, or new tab to accept merchant input via their browser. The loaded web application can be used by the merchant to confirm the payment session and monitor its progress."},"webpos_device_id":{"type":"string","format":"uuid","title":"Webpos Device Id","description":"The Web POS Device which created the payment."},"amount":{"$ref":"#/components/schemas/Money","description":"The amount of money to charge the buyer."},"client_reference":{"type":"string","title":"Client Reference","description":"The reference value provided by the host POS when the Web POS payment was created."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The date and time the Web POS payment was created, in ISO 8601 format."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"The date and time the Web POS payment was last updated, in ISO 8601 format."},"metadata":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Metadata","description":"The metadata provided by the host POS when the Web POS payment was created."},"terminal":{"anyOf":[{"$ref":"#/components/schemas/Terminal"},{"type":"null"}],"description":"The terminal that's been selected to process this payment. Only available if a terminal has been chosen by an operator or auto-selected."},"payment_details":{"anyOf":[{"$ref":"#/components/schemas/WebPOSPaymentDetails"},{"type":"null"}],"description":"Payment outcome related details. Only available once the terminal has captured card data and submitted to upstream services."}},"type":"object","required":["id","status","redirect_url","webpos_device_id","amount","client_reference","created_at","updated_at"],"title":"WebPOSPayment","example":{"amount":{"amount":200,"currency":"ZAR"},"client_reference":"af4a8c17-5720-4a8b-aab1-4619667eaa02","created_at":"2024-10-31T07:53:29.187Z","id":"9c07e0aa-327d-4d41-a8f0-f2136aa22ff8","metadata":{"foo":"bar"},"payment_details":{"authorization_id":"004681","card_details":{"cardholder_verification_method":"online_pin","masked_pan":"441595******4874","pan_entry_mode":"contactless_icc","scheme":"visa"},"emv_application_info":{"application_identifier":"A0000000031010","application_name":"VISA DEBIT"},"retrieval_reference_number":"061038691660"},"redirect_url":"https://cpw.yoco.com/redirect/payments/9c07e0aa-327d-4d41-a8f0-f2136aa22ff8","status":"successful","terminal":{"model":"Neo Touch","serial_number":"52303251110"},"updated_at":"2024-10-31T07:55:12.984Z","webpos_device_id":"4cf28172-3bf5-48cd-8c55-e83e1a976992"}},"WebPOSPaymentDetails":{"properties":{"authorization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Id","description":"'AuthID' provided by the issuer for the card transaction. Only available if a response is received from upstream banks and issuers."},"retrieval_reference_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Retrieval Reference Number","description":"'RRN' used to identify the transaction exchange with the acquirer. Only available if the terminal has submitted card data to upstream services."},"card_details":{"anyOf":[{"$ref":"#/components/schemas/CardDetails"},{"type":"null"}],"description":"Details of the card used to process this payment. Only available if terminal has captured and submitted card data to upstream services."},"emv_application_info":{"anyOf":[{"$ref":"#/components/schemas/EmvApplicationInfo"},{"type":"null"}],"description":"EMV details of the card transaction. Only available if terminal has captured and submitted card data to upstream services."}},"type":"object","title":"WebPOSPaymentDetails","example":{"authorization_id":"004681","card_details":{"cardholder_verification_method":"online_pin","masked_pan":"441595******4874","pan_entry_mode":"contactless_icc","scheme":"visa"},"emv_application_info":{"application_identifier":"A0000000031010","application_name":"VISA DEBIT"},"retrieval_reference_number":"061038691660"}},"WebPOSPaymentStatus":{"type":"string","enum":["failed","pending","successful"],"title":"WebPOSPaymentStatus"},"WebhookEventDefinition":{"properties":{"event_type":{"$ref":"#/components/schemas/WebhookEventType","description":"The type of webhook event."},"name":{"type":"string","title":"Name","description":"A friendly name to describe the event."},"description":{"type":"string","title":"Description","description":"A longer description of the event."}},"type":"object","required":["event_type","name","description"],"title":"WebhookEventDefinition","example":{"description":"A notification sent when a payment is created.","event_type":"payment.created","name":"Payment Created"}},"WebhookEventType":{"type":"string","enum":["item_category.created","item_category.deleted","item_category.updated","item.created","item.deleted","item.updated","order.cancelled","order.completed","order.created","order.updated","payment.created","payment.refunded"],"title":"WebhookEventType"},"WebhookSubscription":{"properties":{"id":{"type":"string","title":"Id","description":"The unique identifier of the subscription."},"name":{"type":"string","title":"Name","description":"A friendly name to describe the subscription."},"enabled":{"type":"boolean","title":"Enabled","description":"A flag indicating whether the subscription is enabled."},"event_types":{"items":{"$ref":"#/components/schemas/WebhookEventType"},"type":"array","title":"Event Types","description":"A list of event types the subscription is bound to."},"notification_url":{"type":"string","title":"Notification Url","description":"The URL to be notified when an event occurs."},"secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret","description":"The secret used to verify the payload of a webhook, only available upon creation."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The subscription creation date and time in ISO 8601 format."},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"The date and time the subscription was last modified in ISO 8601 format."}},"type":"object","required":["id","name","enabled","event_types","notification_url","secret","created_at","updated_at"],"title":"WebhookSubscription","example":{"created_at":"2024-11-19T15:27:02+00:00","enabled":true,"event_types":["payment.created"],"id":"ep_1srOrx2ZWZBpBUvZwXKQmoEYga2","name":"Example Webhook Subscription","notification_url":"https://webhook.site/1d9d0c3c-c0f9-4def-8cf1-99efb5931eca","secret":"whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD","updated_at":"2024-11-19T15:27:02+00:00"}}},"securitySchemes":{"Bearer":{"type":"http","description":"JWT authentication","scheme":"bearer"}}}}