openapi: 3.1.0 info: title: Shipments Address Integrations API version: 3.0.0 description: The Shipments API allows you to create and announce, retrieve, and cancel outgoing shipments and their associated parcels within the Sendcloud platform. contact: name: Sendcloud API Support email: contact@sendcloud.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: https://panel.sendcloud.sc/api/v3 description: Sendcloud Production tags: - name: Integrations paths: /integrations: get: summary: Retrieve a list of integrations operationId: sc-public-v2-orders-get-retrieve_a_list_of_integrations security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-a-list-of-integrations content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nThe information returned includes the shop name and URL, the date, and the time of the last order fetch. The response indicates whether service point delivery is enabled for this integration, and for which carriers." description: Retrieve information about all the shop integrations currently connected to your Sendcloud account. parameters: - schema: type: string in: query name: ordering description: Specifies the field used to order the resulting response responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/Integration' examples: RetrieveIntegrationList: summary: Retrieve a list of integrations value: - id: 123 shop_name: 'Integration #1' shop_url: https://example.com system: api / amazon / magento failing_since: '2019-08-24T14:15:22Z' last_fetch: '2019-08-24T14:15:22Z' last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com tags: - Integrations /integrations/{id}: parameters: - schema: type: integer name: id in: path required: true description: The id of the integration get: summary: Retrieve an integration operationId: sc-public-v2-orders-get-retrieve_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-an-integration content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nThe information returned includes the shop name and URL, the date and the time of the last order fetch. The response will also indicate whether service point delivery is enabled for this integration, and for which carriers." description: Retrieve information about a specific integration using its `id`. tags: - Integrations responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Integration' examples: RetrieveIntegration: summary: Retrieve an integration value: id: 123 shop_name: 'Integration #1' shop_url: https://example.com system: api / amazon / magento failing_since: '2019-08-24T14:15:22Z' last_fetch: '2019-08-24T14:15:22Z' last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com '404': $ref: '#/components/responses/404-Integrations' put: summary: Update an integration operationId: sc-public-v2-orders-put-update_an_integration x-mint: href: /api/v2/integrations/update-an-integration content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nUsing this endpoint, you can change the webshop name and URL, edit the list of carriers you want to enable for service point delivery and enable or disable service point delivery by setting `service_point_enabled` to `true` or `false`.\n\nUnlike the [Partially update an integration](/api/v2/integrations/partially-update-an-integration) endpoint, you must send all fields, even those you don't want to change.\n\nYou can obtain an integration `id` via the [Retrieve a list of integrations](/api/v2/integrations/retrieve-a-list-of-integrations) endpoint." security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] description: Update settings for a specific integration using its `id`. responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com description: OK '400': $ref: '#/components/responses/400-Integration' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an Integration value: shop_name: 'Integration #1' shop_url: https://example.com service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com description: '' patch: operationId: sc-public-v2-orders-patch-partial_update_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/partially-update-an-integration content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nUsing this endpoint, you can change the webshop name and URL, edit the list of carriers you want to enable for service point delivery and enable or disable service point delivery by setting `service_point_enabled` to `true` or `false`.\n\nUnlike the [Update an integration](/api/v2/integrations/update-an-integration) endpoint, you can send only the fields you want to update.\n\nYou can obtain an integration `id` via the [Retrieve a list of integrations](/api/v2/integrations/retrieve-a-list-of-integrations) endpoint." description: Partially update settings for a specific integration using its `id`. responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an Integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com partial_update: summary: Partial update of an Integration value: service_point_enabled: true service_point_carriers: - ups description: OK '400': $ref: '#/components/responses/400-Integration' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations summary: Partially update an integration requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationUpdate' examples: UpdateIntegration: summary: Update an integration value: shop_name: 'Integration #1' shop_url: https://example.com last_updated_at: '2019-08-24T14:15:22Z' service_point_enabled: true service_point_carriers: - ups webhook_active: true webhook_url: https://example.com partial_update: summary: Partial update of an Integration value: service_point_enabled: true service_point_carriers: - ups delete: summary: Delete an integration operationId: sc-public-v2-orders-delete-delete_an_integration security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/delete-an-integration content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n" description: Delete a shop integration from the Sendcloud system. responses: '204': description: No Content '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations /integrations/logs: get: summary: Retrieve all integration exception logs operationId: sc-public-v2-orders-get-retrieve_integrations_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-sendcloud-paginated: true x-sendcloud-paginated-discriminator: results x-mint: href: /api/v2/integrations/retrieve-all-integration-exception-logs content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nIntegration exception logs might be generated, for example:\n\n- if some resource cannot be found\n- if API credentials are no longer valid\n\nEach log record may contain information about the request and response, the status code and code exception, and can be used as a reference to identify issues between Sendcloud and a webshop." description: Retrieve all integration exception logs. These logs are created when integrations have problems making API requests to shop systems. tags: - Integrations responses: '200': description: OK content: application/json: schema: type: object properties: next: type: string format: uri description: Cursor based pagination url to go forward. By following this URL you can get a next batch of logs previous: type: string format: uri description: Cursor based pagination url to go backwards. By following this URL you can get a previous batch of logs results: type: array items: $ref: '#/components/schemas/IntegrationLog' examples: RetrieveIntegrationLogs: summary: Retrieve a list of integration logs value: next: https://example.com previous: https://example.com results: - id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: "\n\n \n SSL Certificate Error\n \n \n" request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false - id: 124 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 404 response: {} request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: {} created_at: '2023-03-01T02:02:00+01:00' exception: PageNotFound protected: false /integrations/{id}/logs: parameters: - schema: type: integer name: id in: path required: true description: The id of the integration to which the shipments belong get: summary: Retrieve exception logs for a specific integration operationId: sc-public-v2-orders-get-retrieve_integration_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/retrieve-exception-logs-for-a-specific-integration content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n\n\nIntegration exception logs might be generated, for example:\n\n- if some resource cannot be found\n- if API credentials are no longer valid\n\nEach log record may contain information about the request and response, the status code and code exception, and can be used as a reference to identify issues between Sendcloud and a webshop." x-sendcloud-paginated: true x-sendcloud-paginated-discriminator: results description: Retrieve exception logs for a specific integration. These logs are created when integrations have problems making API requests to shop systems. tags: - Integrations responses: '200': description: OK content: application/json: schema: type: object properties: next: type: string format: uri description: Cursor based pagination url to go forward. By following this URL you can get a next batch of logs previous: type: string format: uri description: Cursor based pagination url to go backwards. By following this URL you can get a previous batch of logs results: type: array items: $ref: '#/components/schemas/IntegrationLog' examples: RetrieveIntegrationLogs: summary: Retrieve a list of integration logs value: next: https://example.com previous: https://example.com results: - id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: "\n\n \n SSL Certificate Error\n \n \n" request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false - id: 124 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 404 response: {} request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: {} created_at: '2023-03-01T02:02:00+01:00' exception: PageNotFound protected: false '404': $ref: '#/components/responses/404-Integrations' post: summary: Create integration exceptions logs operationId: sc-public-v2-orders-post-create_integration_logs security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] x-mint: href: /api/v2/integrations/create-integration-exception-logs content: "\n **API v2 is entering maintenance mode.** New users should start with API v3 to access our latest features and improved performance. Already using v2? Don't worry, your current integration remains fully functional. Read more about [maintenance mode](/docs/getting-started/api-version-guide), or check out the [migration guide for API v3](/docs/getting-started/migration-guidelines-for-api-v3).\n" description: Create integration exception logs, which will appear in the connection issue log screen of the user's integration. responses: '201': content: application/json: schema: $ref: '#/components/schemas/IntegrationLog' examples: CreateIntegrationLog: summary: Create an integration log value: id: 123 integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: "\n\n \n SSL Certificate Error\n \n \n" request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred protected: false description: OK '400': $ref: '#/components/responses/400-IntegrationLog' '404': $ref: '#/components/responses/404-Integrations' tags: - Integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationLog' examples: CreateIntegrationLog: summary: Create an integration log value: integration_id: 123 user_id: 123 base_url: https://example.com full_url: https://example.com/order-note.json method: POST response_code: 495 response: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive body: "\n\n \n SSL Certificate Error\n \n \n" request: headers: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: order_note: note: Success created_at: '2023-03-01T02:02:00+01:00' exception_type: requests.exceptions.SSLError exception: An SSL error occurred /shop-order-statuses: get: summary: Retrieve shop order statuses for an integration description: Fetch all available shop order statuses for the Prestashop v2 integration, in the default or selected language. x-mint: href: /api/v3/integrations/retrieve-shop-order-statuses-for-an-integration content: "\n Only the Prestashop V2 integration is supported.\n\n\nNote that:\n\n- If the user hasn't picked a language, they will receive the status in the default language, `en-gb`.\n- If `en-gb` is not present, the user receives the status in the first language of the alphabetically ordered list." parameters: - $ref: '#/components/parameters/required_integration_id' - $ref: '#/components/parameters/language' - $ref: '#/components/parameters/show_deleted' responses: '200': description: All available shop order statuses for a given integration, in default or selected language. content: application/json: schema: $ref: '#/components/schemas/get-shop-order-statuses' examples: Response: value: data: - external_id: 17-B status: Delivered deleted_at: null translations: - status: Delivered language: en-gb - status: Verzonden language: nl-nl - status: Geliefert language: de-de - external_id: 14-A status: Cancelled deleted_at: '2023-11-04T14:15:22Z' translations: - status: Cancelled language: en-gb - status: Geannuleerd language: nl-nl - status: Abgesagt language: de-de '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errors' examples: InvalidRequest: value: errors: - status: '400' code: non_field_errors title: integration ID detail: Integration ID is a required GET parameter operationId: sc-public-v3-integrations-get-shop_order_statuses security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] tags: - Integrations post: summary: Create or overwrite shop order statuses description: Insert shop-specific custom statuses into the Sendcloud system. x-mint: href: /api/v3/integrations/create-or-overwrite-shop-order-statuses content: "\n Only the Prestashop V2 integration is supported.\n\n\nNote that:\n\n- Integrations can have their own custom shop statuses.\n- To get your order updates in time, Sendcloud needs to know what statuses are available.\n- This endpoint updates all existing statuses. That includes creating new statuses, changing existing ones, and deleting ones that no longer exist." requestBody: content: application/json: schema: $ref: '#/components/schemas/post-shop-order-statuses' examples: PostOrderShopStatuses: summary: Upserting available shop order statuses description: Setting all available shop order statuses with their available translations. value: integration_id: 23452345 statuses: - external_id: Send-4 translations: - status: Sent language: en-gb - status: Verzonden language: nl-nl - external_id: '15' translations: - status: Delivered language: en-gb - status: Bezorgt language: nl-nl responses: '200': description: OK. content: application/json: schema: type: 'null' examples: Response: value: null '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errors' examples: WrongPayloadFormatRequested: value: errors: - status: '400' code: non_field_errors title: Wrong format detail: Wrong request format, expected object operationId: sc-public-v3-integrations-post-shop_order_statuses security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] tags: - Integrations /shop-order-statuses/mapping: get: summary: Retrieve custom status mapping for an integration description: 'Fetch a map of available shop order statuses and Sendcloud''s internal status category for the integration. ' x-mint: href: /api/v3/integrations/retrieve-custom-status-mapping-for-an-integration content: "\n Only the Prestashop V2 integration is supported.\n" parameters: - $ref: '#/components/parameters/required_integration_id' responses: '200': description: Custom status mapping for an integration. content: application/json: schema: type: object $ref: '#/components/schemas/get-custom-status-mapping' examples: Response: value: data: integration_id: 23452345 mapping: - status_category: READY_TO_SEND external_id: '11' is_valid: true - status_category: IN_TRANSIT external_id: '11' is_valid: true - status_category: DELIVERED external_id: null is_valid: true - status_category: CANCEL external_id: '1' is_valid: false '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errors' examples: InvalidRequest: value: errors: - status: '400' code: non_field_errors title: integration ID detail: Integration ID is a required GET parameter operationId: sc-public-v3-integrations-get-shop_order_statuses_mapping security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] tags: - Integrations post: summary: Create or update custom status mapping for an integration description: Upsert a map of available shop order statuses and Sendcloud's internal status category for an integration x-mint: href: /api/v3/integrations/create-or-update-custom-status-mapping-for-an-integration content: "\n Only the Prestashop V2 integration is supported.\n" requestBody: content: application/json: schema: $ref: '#/components/schemas/create-custom-status-mapping' examples: PostOrderStatusesMapping: summary: Insert or update custom status mapping of `external_ids` to Sendcloud's internal status category. value: integration_id: 23452345 mapping: - status_category: READY_TO_SEND external_id: '11' - status_category: IN_TRANSIT external_id: '11' - status_category: DELIVERED external_id: '12' - status_category: CANCEL external_id: null responses: '200': description: OK. content: application/json: schema: type: 'null' examples: Response: value: null '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/errors' examples: WrongPayloadFormatRequested: value: errors: - status: '400' code: non_field_errors title: Wrong format detail: Wrong request format, expected object operationId: sc-public-v3-integrations-post-shop_order_statuses_mapping security: - HTTPBasicAuth: [] - OAuth2ClientCreds: [] tags: - Integrations components: schemas: IntegrationUpdate: title: Integration Update Object description: An updated integration response object properties: shop_name: type: string title: Name maxLength: 250 minLength: 1 description: Name of the shop example: 'Integration #1' readOnly: true shop_url: type: string title: Shop url description: URL of the shop the integration connects to format: uri minLength: 1 last_updated_at: type: string title: Last updated at format: date-time description: Timestamp when the integration was last updated readOnly: true service_point_enabled: type: boolean title: Service point enabled description: Flag for denoting if delivery to service points is enabled service_point_carriers: type: array title: Service point carriers description: A list of carriers available for the service point picker. At least one carrier must be provided if the service point delivery is enabled. items: type: string example: ups webhook_active: type: boolean title: Webhook active description: Flag indicating if updates for parcels should be send via the webhook webhook_url: type: string title: Webhook url format: uri description: A URL to which Sendcloud communicates updates in a parcel minLength: 1 errors: title: Errors type: object description: A standardized format for errors in JSON:API responses. properties: errors: type: - array - object items: type: object allOf: - $ref: '#/components/schemas/ErrorObject' required: - status - code - detail Integration: type: object title: Integration Object properties: id: type: integer title: ID description: ID of an integration minimum: 1 example: 123 readOnly: true shop_name: type: string title: Name maxLength: 250 minLength: 1 description: Name of the shop example: 'Integration #1' readOnly: true shop_url: type: - string - 'null' title: Shop url description: URL of the shop the integration connects to format: uri minLength: 1 system: type: string title: System maxLength: 50 minLength: 1 example: api / amazon / magento description: Type of shop/system the integration connects to readOnly: true failing_since: type: - string - 'null' title: Failing since description: Timestamp from when the integration is failing to fetch orders or to send feedback format: date-time readOnly: true last_fetch: type: - string - 'null' title: Last fetch description: The last time we managed to fetch data from this integration, used for rate limiting purposes format: date-time readOnly: true last_updated_at: type: string title: Last updated at format: date-time description: Timestamp when the integration was last updated readOnly: true service_point_enabled: type: boolean title: Service point enabled description: Flag for denoting if delivery to service points is enabled service_point_carriers: title: Service point carriers type: array description: A list of carriers available for the service point picker items: type: string example: ups readOnly: true webhook_active: type: boolean title: Webhook active description: Flag indicating if updates for parcels should be send via the webhook webhook_url: type: - string - 'null' title: Webhook url format: uri description: A URL to which Sendcloud communicates updates to a parcel minLength: 1 required: - shop_name - system - last_updated_at IntegrationLog: type: - object title: Integration Log Object properties: id: type: - integer title: ID description: ID of an log record minimum: 1 example: 123 readOnly: true integration_id: type: - integer - 'null' description: ID of an integration to which this log belongs minimum: 1 example: 123 writeOnly: true user_id: type: - integer description: ID of a user to which this log belongs minimum: 1 example: 123 writeOnly: true base_url: description: Base shop URL type: - string example: https://example.com minLength: 1 full_url: description: Full path to resource where error happened type: - string - 'null' example: https://example.com/order-note.json method: type: - string description: HTTP method caused an error example: POST response_code: type: - integer - 'null' description: Standard HTTP error code example: 495 minimum: 0 response: type: - object - 'null' title: Response object description: Response JSON containing response body and headers properties: headers: title: HTTP headers description: HTTP headers which were sent within a response examples: - headerExample: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive type: - object - 'null' body: title: HTTP response body description: HTTP response body example: "\n\n \n SSL Certificate Error\n \n \n" type: - string - object - 'null' request: type: - object - 'null' title: Request object description: Request JSON containing request body and headers properties: headers: title: HTTP headers description: HTTP headers which were sent within a request type: - object - string - 'null' examples: - headerExample: Cache-Control: max-age=3600 Content-Type: text/html; charset=utf-8 Connection: keep-alive payload: title: HTTP request body description: HTTP request body type: - object - string - 'null' examples: - order_note: note: Success created_at: type: - string format: date-time description: Timestamp indicating when an exception occurred. If the fields is not presented in the request, current date will be set example: '2023-03-01T02:02:00+01:00' exception_type: type: - string - 'null' description: Internal field to store Python exception type. We use this field to suggest our users the ways how they can fix issues. example: requests.exceptions.SSLError exception: type: - string - 'null' title: Exception text description: Human readable description of exception example: An SSL error occurred protected: type: - boolean description: An indication whether or not request/response is obfuscated example: false readOnly: true required: - base_url description: '' get-custom-status-mapping: title: Get Custom Status Mapping type: object description: Retrieve available shop order statuses mapped onto Sendcloud's internal status category for the given integration. properties: data: type: object properties: integration_id: type: integer description: Sendcloud Integration ID. example: 23452345 mapping: type: array description: "Array containing available shop order statuses mapped onto Sendcloud's internal status category.\n - The array contains an object of each of Sendcloud's internal status categories.\n - Each of sendcloud's internal status categories will be mapped onto either `AvailableStatus.external_id` or `null`\n - Not all `external_ids` in AvailableStatus may be mapped onto Sendcloud's internal status category.\n - Two `external_ids` may map onto the same internal status category.\n - An invalid mapping is a mapping that points to `external_id` that has been deleted." items: type: object description: Status category to `external_id` association map. properties: status_category: type: string enum: - READY_TO_SEND - IN_TRANSIT - DELIVERED - CANCEL description: Sendcloud internal status category. example: READY_TO_SEND external_id: type: - string - 'null' description: Field containing the ID linked to the order status inside the integrated webshop. It may be `None` or `null`. example: '11' is_valid: type: boolean description: A flag showing if the mapping points to an existing `external_id`. example: true post-shop-order-statuses: title: POST Shop Order Statuses description: POST request with shop order statuses with translations. type: object required: - integration_id - statuses properties: integration_id: type: integer description: ID of the integration to which these statuses belong. example: 252345 statuses: type: array description: Available shop statuses. uniqueItems: true minItems: 0 items: type: object required: - external_id - translations properties: external_id: type: string description: ID linked to the order status inside the integrated webshop. example: 17-B translations: type: array minItems: 1 maxItems: 7 uniqueItems: true items: type: object required: - status - language properties: status: type: string description: Order status example: Delivered language: type: string description: Language of the status. example: en-gb enum: - en-us - en-gb - fr-fr - de-de - nl-nl - es-es - it-it get-shop-order-statuses: title: Shop Order Statuses type: object description: Available shop order statuses with translations. properties: data: type: array description: Array holding all available shop order statuses for an integration items: type: object properties: external_id: type: string description: ID linked to the order status inside the integrated webshop. example: 17-B status: type: string description: Translated status name. example: Delivered deleted_at: type: - string - 'null' format: date-time description: Timestamp when the status got removed from available statuses. example: '2023-11-04T14:15:22Z' translations: type: array minItems: 1 items: type: object properties: status: type: string description: Order status. example: Delivered language: type: string description: Language of the status. example: en-gb enum: - en-us - en-gb - fr-fr - de-de - nl-nl - es-es - it-it create-custom-status-mapping: title: Create Custom Status Mapping type: object required: - integration_id - mapping description: Create or update the mapping of available shop order statuses onto Sendcloud's internal status category. properties: integration_id: type: integer description: Sendcloud Integration ID. example: 23452345 mapping: type: array minItems: 4 maxItems: 4 uniqueItems: true description: "Array containing available shop order statuses mapped onto Sendcloud's internal status category.\n - Create or update an existing map of available shop order statuses onto Sendcloud's internal status category for the given integration.\n - Make sure the mapping array contains objects of each Sendcloud's internal status categories.\n - Map each of Sendcloud's internal status categories onto either `AvailableStatus.external_id` or `None`.\n - Note that two `external_ids` may map to the same internal status category." items: type: object required: - status_category - external_id description: status category to external_id association map properties: status_category: type: string enum: - READY_TO_SEND - IN_TRANSIT - DELIVERED - CANCEL description: sendcloud internal status category. example: READY_TO_SEND external_id: type: - string - 'null' description: Field containing the ID linked to the order status inside the integrated webshop. It may be `None`. example: '11' ErrorObject: title: Error type: object description: Error in a JSON:API error format properties: id: type: string description: A unique identifier for the error. links: type: object description: A set of hyperlinks that provide additional information about the error. properties: about: type: string description: A URL that provides additional information about the error. status: type: string format: int32 description: The HTTP status code of the error. minLength: 1 code: type: string description: A unique error code for the error, in snake case format. minLength: 1 enum: - unknown_field - invalid - forbidden - invalid_choice - min_value - 'null' - not_found - required - not_a_list - non_field_errors - authentication_failed - validation_error - parcel_announcement_error title: type: string description: A short, human-readable summary of the error. minLength: 1 detail: type: string description: A human-readable explanation of the error. minLength: 1 source: type: object description: An object that identifies the source of the error within the request payload. properties: pointer: type: string description: A `JSON` pointer to the location of the error within the request payload. parameter: type: string description: The name of the `query` parameter that caused the error. header: type: string description: The name of the `header` parameter that caused the error. meta: type: object description: Additional metadata about the error. parameters: language: in: query name: language schema: type: string enum: - en-us - en-gb - fr-fr - de-de - nl-nl - es-es - it-it description: Get a response for the specified language. example: en-gb show_deleted: in: query name: show_deleted schema: type: boolean description: Get all currently available and historical statuses. example: true required_integration_id: in: query required: true name: integration_id schema: type: integer example: 251 description: Filter response on `integration_id`. responses: 400-IntegrationLog: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer default: 400 description: HTTP response status code request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: WrongFieldValue: summary: Wrong field value value: error: code: 400 request: api/v2/integrations/12/logs message: '{''exception'': [''This field may not be null.'', ]}' 404-Integrations: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer description: HTTP response status code default: 404 request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: NotFound: summary: Integration not found value: error: code: 404 request: api/v2/integrations/ message: No Integration matches the given query. 400-Integration: description: Example response content: application/json: schema: type: object properties: error: type: object properties: code: type: integer default: 400 description: HTTP response status code request: type: string description: Endpoint which returned the response message: type: string description: Human readable error message required: - code - request - message examples: WrongFieldValue: summary: Wrong field value value: error: code: 400 request: api/v2/integrations/ message: '{''settings'': [''webhook_active: This field may not be null.'', ''webhook_url: This field may not be null.'']}' securitySchemes: HTTPBasicAuth: type: http description: Basic Authentication using API key and secrets is currently the main authentication mechanism. scheme: basic OAuth2ClientCreds: type: oauth2 description: OAuth2 is a standardized protocol for authorization that allows users to share their private resources stored on one site with another site without having to provide their credentials. OAuth2 Client Credentials Grant workflow. This workflow is typically used for server-to-server interactions that require authorization to access specific resources. flows: clientCredentials: tokenUrl: https://account.sendcloud.com/oauth2/token/ scopes: api: Default OAuth scope required to access Sendcloud API.