Elastic Path Integrations API

Setting up and managing integrations.

OpenAPI Specification

elastic-path-integrations-api-openapi.yml Raw ↑
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