openapi: 3.1.0 info: version: 25.1126.6886238 x-version-timestamp: 2025-11-26 19:10:23+00:00 title: Addresses Introduction Account Addresses Integrations API description: 'The Addresses API allows you to organize account addresses. Addresses are a sub-resource of `account` resources, an account can have multiple addresses, such as home, work, and neighbour. You can use an account address with either [client_credentials access token](/docs/api/authentication/create-an-access-token) or a combination of [implicit access token](/docs/api/authentication/create-an-access-token) and [Account Management authentication](/docs/api/accounts/post-v-2-account-members-tokens) token. ' contact: name: Elastic Path url: https://www.elasticpath.com email: support@elasticpath.com license: url: https://elasticpath.dev name: MIT servers: - url: https://useast.api.elasticpath.com description: US East - url: https://euwest.api.elasticpath.com description: EU West security: - BearerToken: [] tags: - name: Integrations description: Setting up and managing integrations. paths: /integrations: get: summary: List integrations description: Returns a list of all integrations created by the store. tags: - Integrations operationId: ListIntegrations responses: '200': description: Success. All integrations are returned. content: application/json: schema: type: object properties: data: type: array items: allOf: - $ref: '#/components/schemas/Integration' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/PaginationLinks' results: $ref: '#/components/schemas/Results' '500': $ref: '#/components/responses/InternalServerError' post: summary: Create an integration description: Create an integration. tags: - Integrations operationId: CreateIntegration requestBody: content: application/json: schema: type: object required: - data properties: data: $ref: '#/components/schemas/IntegrationCreate' responses: '200': description: Success. Integration created. content: application/json: schema: type: object properties: data: allOf: - $ref: '#/components/schemas/Integration' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/Meta' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/InternalServerError' /integrations/{integration_uuid}: get: parameters: - $ref: '#/components/parameters/IntegrationUUID' summary: Get an integration description: Returns the integration for the given UUID. tags: - Integrations operationId: GetIntegration responses: '200': description: Success. An integration is returned. content: application/json: schema: type: object properties: data: allOf: - $ref: '#/components/schemas/Integration' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/Meta' '404': $ref: '#/components/responses/NotFoundError' '500': $ref: '#/components/responses/InternalServerError' put: parameters: - $ref: '#/components/parameters/IntegrationUUID' summary: Update an integration description: Updates the Integration for the given UUID. Specify whichever attributes you want to change. The values of the other attributes remain the same. If the attributes section is empty, the integration is not updated. tags: - Integrations operationId: UpdateIntegration requestBody: content: application/json: schema: type: object required: - data properties: data: $ref: '#/components/schemas/IntegrationUpdate' responses: '200': description: Success. All integrations are returned content: application/json: schema: type: object properties: data: allOf: - $ref: '#/components/schemas/Integration' - $ref: '#/components/schemas/Links' - $ref: '#/components/schemas/Meta' links: $ref: '#/components/schemas/Links' meta: $ref: '#/components/schemas/Meta' '404': $ref: '#/components/responses/NotFoundError' '422': $ref: '#/components/responses/ValidationError' '500': $ref: '#/components/responses/InternalServerError' delete: parameters: - $ref: '#/components/parameters/IntegrationUUID' summary: Delete an integration description: Deletes the Integration for the given UUID tags: - Integrations operationId: DeleteIntegration responses: '200': description: Integration was successfully deleted '500': $ref: '#/components/responses/InternalServerError' /integrations/logs: get: summary: List logs for all integrations for the store description: Returns all integration logs for the store. tags: - Integrations operationId: ListStoreLogs responses: '200': description: Success. Returns a list of integration logs. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/IntegrationLog' links: $ref: '#/components/schemas/LogsPaginationLinks' '500': $ref: '#/components/responses/InternalServerError' /integrations/{integration_uuid}/logs: parameters: - $ref: '#/components/parameters/IntegrationUUID' get: summary: List logs for integration description: Returns the logs for the given integration UUID. tags: - Integrations operationId: ListIntegrationLogs responses: '200': description: Success. Returns a list of integration logs. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/IntegrationLog' links: $ref: '#/components/schemas/LogsPaginationLinks' '404': $ref: '#/components/responses/NotFoundError' '500': $ref: '#/components/responses/InternalServerError' /integrations/{integration_uuid}/jobs: parameters: - $ref: '#/components/parameters/IntegrationUUID' get: summary: List jobs for integration description: Returns the jobs for the given integration UUID. tags: - Integrations operationId: ListIntegrationJobs responses: '200': description: Success. All integrations are returned. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/IntegrationJob' '404': $ref: '#/components/responses/NotFoundError' '500': $ref: '#/components/responses/InternalServerError' /integrations/{integration_uuid}/jobs/{job_uuid}/logs: parameters: - $ref: '#/components/parameters/IntegrationUUID' - $ref: '#/components/parameters/JobUUID' get: summary: List logs for the job description: Returns the integration logs for the given integration and job UUID. tags: - Integrations operationId: ListJobLogs responses: '200': description: Success. Returns a list of integration logs. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/IntegrationLog' links: $ref: '#/components/schemas/LogsPaginationLinks' '404': $ref: '#/components/responses/NotFoundError' '500': $ref: '#/components/responses/InternalServerError' components: schemas: WebhookConfigurationObject: required: - url properties: url: type: string example: https://yourwebsite.com/order-created-notification description: A required URL that the integration fires. format: uri secret_key: type: string example: secret_key_to_validate_on_your_endpoint description: An optional header. Useful to authenticate the response came from Elastic Path. This is sent as `X-MOLTIN-SECRET-KEY`. AWSSQSConfigurationObject: required: - url - aws_access_key_id - aws_secret_access_key - region properties: url: type: string format: uri example: https://sqs.eu-west-1.amazonaws.com/123456789/epcc-external-queue description: The required SQS queue URL. aws_access_key_id: type: string example: '****************JIMB' description: The required AWS access key ID. aws_secret_access_key: type: string example: '************************************HK4o' description: The required AWS secret key ID. region: type: string example: eu-west-1 description: The required AWS region. IntegrationUpdate: required: - type properties: type: description: The type represents the object being returned. Always `integration`. type: string example: integration enum: - integration default: integration name: type: string example: Order shipping notification description: The name of the integration. description: type: string example: Send a shipping notification via email with discount code description: A description of what the integration is for. enabled: type: boolean example: true description: Whether the integration is enabled. integration_type: type: string example: webhook enum: - webhook - aws_sqs - stomp default: webhook observes: type: array description: The list of events you want to observe. See [**Observable Events**](#observable-events). items: type: string configuration: description: The content of the configuration object depends on the value of `integration_type`. type: object oneOf: - $ref: '#/components/schemas/AWSSQSConfigurationObject' - $ref: '#/components/schemas/WebhookConfigurationObject' - $ref: '#/components/schemas/STOMPConfigurationObject' Timestamps: description: The date and time a transaction is created. properties: created_at: description: The date and time an integration is updated. type: string format: date-time example: '2017-07-21T17:32:28Z' updated_at: description: The date and time an integration is updated. type: string format: date-time example: '2017-07-21T17:32:28Z' IntegrationCreate: required: - type - observers - integration_type - name - configuration properties: type: description: The type represents the object being returned. Always `integration`. type: string example: integration enum: - integration default: integration name: type: string example: Order shipping notification description: The name of the integration. description: type: string example: Send a shipping notification via email with discount code description: A description of what the integration is for. enabled: type: boolean example: true description: Whether the integration is enabled. integration_type: type: string description: Specifies how the event is delivered. The options are `webhook`, `aws-sqs`, or `stomp`. example: webhook enum: - webhook - aws_sqs - stomp default: webhook observes: description: The list of events you want to observe. See [**Observable Events**](#observable-events). type: array items: type: string configuration: description: The content of the configuration object depends on the value of `integration_type`. type: object oneOf: - $ref: '#/components/schemas/AWSSQSConfigurationObject' - $ref: '#/components/schemas/WebhookConfigurationObject' - $ref: '#/components/schemas/STOMPConfigurationObject' Meta: type: object properties: meta: type: object properties: timestamps: $ref: '#/components/schemas/Timestamps' LogsPaginationLinks: type: object description: Links are used to allow you to move between pages. properties: first: description: Always the first page. This is not present on the first page. type: string example: /integrations/logs?page[offset]=0&page[limit]=10 next: description: Next page link. type: string example: /integrations/logs?page[offset]=10&page[limit]=10 prev: description: This is not present on the first page. type: string example: /integrations/logs?page[offset]=8&page[limit]=10 ErrorResponse: required: - errors properties: errors: type: array items: $ref: '#/components/schemas/ErrorBody' IntegrationLog: description: As integrations can fail over time, Commerce provides the ability to browse all logs for your integrations. properties: id: description: A unique identifier of an integration whose logs you want to view. type: string example: ac8bb58e-2b9b-4ccf-9dd2-ecdf50417849 type: description: This represents the type of resource object being returned. Always `integration`. type: string example: integration enum: - integration default: integration succeeded: type: boolean example: true description: Whether the integration was successful. attempt: type: integer example: 1 description: The number of attempts made to process the integration. body: type: string example: Not Found description: The response returned from the integration. status_code: type: integer example: 404 description: The status code returned from the integration. error_detail: type: string example: Received a status code outside of 2xx range - treating webhook as a fail description: The reason why the integration failed. relationships: description: Relationships are established between different integration entities. For example, a log and an integration job are related to an integration. type: object properties: integration: type: object properties: data: type: object properties: id: type: string description: The ID of the integration processed. example: ff8634a8-a89e-4eac-baab-9b7b8c4f8720 type: type: string description: This represents the resource type of the object being returned. Always `integration`. example: integration job: type: object properties: data: type: object properties: id: type: string description: The ID of the integration job processed. example: ff8634a8-a89e-4eac-baab-9b7b8c4f8720 type: type: string description: This represents the resource type of the object being returned. Always `integration-job`. example: job Links: type: object properties: links: description: Links are used to allow you to move between requests. type: object properties: self: description: Single entities use a self parameter with a link to that specific resource. $ref: '#/components/schemas/LinkURI' Integration: properties: id: description: The unique identifier of the integration. type: string example: 2da46671-b4c2-44ac-b133-d1221aafc77b type: description: The type represents the object being returned. Always `integration`. type: string example: integration enum: - integration default: integration name: type: string example: Order shipping notification description: The name of the integration. description: type: string example: Send a shipping notification via email with discount code description: A description of what the integration is for. enabled: type: boolean example: true description: Whether the integration is enabled. integration_type: type: string example: webhook description: Specifies how the event is delivered. The options are `webhook`, `aws-sqs`, or `stomp`. enum: - webhook - aws_sqs - stomp default: webhook observes: description: The list of events you want to observe. See [**Observable Events**](#observable-events). type: array items: type: string configuration: type: object oneOf: - $ref: '#/components/schemas/AWSSQSConfigurationObject' - $ref: '#/components/schemas/WebhookConfigurationObject' - $ref: '#/components/schemas/STOMPConfigurationObject' ErrorBody: required: - title properties: status: type: integer format: int description: The HTTP response code of the error. example: 500 title: type: string description: A brief summary of the error. example: Internal server error detail: type: string description: Optional additional detail about the error. example: An internal error has occurred. Results: description: The results for this response for the entire collection. type: object properties: total: description: The total number of records for this response for the entire collection. type: integer example: 1 LinkURI: type: string format: uri example: ?page[offset]=0&page[limit]=25 STOMPConfigurationObject: required: - url properties: username: type: string example: epcc-integration-1 description: The username used to authenticate against a STOMP server. password: type: string example: '****************************CDKn' description: The password used to authenticate against a STOMP server. destination: type: string example: /queue/epcc-integrations.order-created description: The destination in the messaging queuing system. addresses: type: array items: type: string format: uri example: - stomp+ssl://b-618354a5-e04f-4eff-99c7-734e9d8b91a5-2.mq.us-west-2.amazonaws.com:61614 - stomp+ssl://b-618354a5-e04f-4eff-99c7-734e9d8b91a5-1.mq.us-west-2.amazonaws.com:61614 description: The addresses that correspond with the destination name. IntegrationJob: properties: id: description: The ID of the integration job processed. type: string example: 8848646b-2745-469e-8cc1-ee3b04738f8f type: type: string description: This represents the type of resource object being returned. Always `integration-job`. enum: - integration-job example: integration-job PaginationLinks: type: object description: Links are used to allow you to move between pages. properties: first: description: Always the first page. This is not present on the first page. type: string example: /integrations?page[offset]=0&page[limit]=10 last: description: This is not present if there is only one page. type: string example: /integrations?page[offset]=20&page[limit]=10 next: description: This is not present if there is no next page. type: string example: /integrations?page[offset]=10&page[limit]=10 prev: description: This is not present on the first page. type: string example: /integrations?page[offset]=8&page[limit]=10 responses: NotFoundError: description: Not found. The requested entity does not exist. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: not-found: value: errors: - title: Not Found status: 404 detail: The resource could not be found ValidationError: description: Bad request. The request failed validation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: missing-name: value: errors: - title: Validation Error status: 400 detail: Your request was invalid InternalServerError: description: Internal server error. There was a system failure in the platform. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: internal-server-error: value: errors: - title: Internal Server Error status: 500 parameters: JobUUID: name: job_uuid in: path description: The unique identifier of the integration job. required: true schema: type: string IntegrationUUID: name: integration_uuid in: path description: The unique identifier of the integration. required: true schema: type: string securitySchemes: BearerToken: type: http scheme: bearer