openapi: 3.0.3
info:
  title: Inxmail Commerce API for SAP
  version: 1.0.0
  description: >-
    *Inxmail Commerce API for SAP* allows you to trigger transaction event
    workflows and retrieve information about the outcomes of these transactions.


    The OpenAPI 3 specification for *Inxmail Commerce API for SAP* is available
    at the following URL:


    + https://help.inxmail-commerce.com/inxmail-commerce-sap-openapi.yaml


    ## Authentication


    *Inxmail Commerce API* requires REST clients to authenticate themselves with
    an API key using [HTTP Basic
    Authentication](https://en.wikipedia.org/wiki/Basic_access_authentication).

    The key consists of a `keyid` and a `secret`,  which can be supplied to the
    client software as username and password:


    ```bash

    curl -u 'keyid:secret' -H 'Accept: application/json'
    'https://space.api.inxmail-commerce.com/api-service/v1/bounces'

    ```


    ## Media Types


    *Inxmail Commerce API* uses JSON as data format for requests and responses
    `application/json`.


    Large responses are paginated, in this case the standard `next` and
    `previous` link relations are used to provide navigation.


    ## Error States


    The common [HTTP Response Status
    Codes](https://github.com/for-GET/know-your-http-well/blob/master/status-codes.md)
    are used.
servers:
  - url: https://{spaceid}.api.inxmail-commerce.com/api-service
paths:
  /:
    get:
      responses:
        '404':
          description: Space with specified ID does not exist
          headers: {}
          content: {}
      summary: All Requests
      operationId: All Requests
      description: >-
        All requests are scoped to a single Inxmail Commerce space. The space ID
        is specified as first part of the domain name.
      tags:
        - General Information
      parameters:
        - name: spaceid
          in: query
          description: >-
            ID of the *Inxmail Commerce* space. You can find the spaceid in your
            credential document and the first part of the url which is used for
            gui access.
          required: true
          example: a-space
          schema:
            type: string
  /custom/sap/v1/send:
    post:
      responses:
        '200':
          description: |-
            Request has been transmitted successfully.
            Returned id is the transaction id for this request.
          headers: {}
          content: {}
      summary: Send an email
      operationId: Send an email
      description: >-
        Allows submitting an email message as an HTTP call instead of sending it
        by SMTP.


        ```bash

        curl -X POST -u 'keyid:secret' -H 'Content-Type: application/json' -d '{
        "type": "email", "sourceSystem": "0MB871I", "campaignId": "cMB871df",
        "sender": "info@example.invalid", "senderName": "Name of the sender",
        "replyTo": "reply@example.invalid", "replyToName": "Name for reply to",
        "recipient": "max.mustermann@example.invalid", "recipientName": "Max
        Mustermann", "listUnsubscribe":
        "<https://www.example.invalid/unsubscribe>,
        <mailto:unsub@example.invalid>", "subjectContentPlainText": "Test
        subject", "bodyContentHTML": "<html><body><b>This is a
        test\nbody.</b></body></html>", "bodyContentPlainText": "This is a test
        text for the text part." }'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/send'

        ```
      tags:
        - Generic E-Mail-Adapter for SAP
      parameters: []
      requestBody:
        content:
          application/json:
            examples:
              example1:
                value:
                  type: email
                  sourceSystem: 0MB871I
                  campaignId: cMB871df
                  sender: info@example.invalid
                  senderName: Name of the sender
                  replyTo: reply@example.invalid
                  replyToName: Name for reply to
                  recipient: max.mustermann@example.invalid
                  recipientName: Max Mustermann
                  listUnsubscribe: >-
                    <https://www.example.invalid/unsubscribe>,
                    <mailto:unsub@example.invalid>
                  subjectContentPlainText: Test subject
                  bodyContentHTML: |-
                    <html><body><b>This is a test
                    body.</b></body></html>
                  bodyContentPlainText: This is a test text for the text part.
              example2:
                value:
                  type: email
                  sourceSystem: 0MB871I
                  campaignId: cMB871df
                  sender: info@example.invalid
                  senderName: Name of the sender
                  replyTo: reply@example.invalid
                  replyToName: Name for reply to
                  recipient: max.mustermann@example.invalid
                  recipientName: Max Mustermann
                  bccRecipient: bcc@example.invalid
                  listUnsubscribe: >-
                    <https://www.example.invalid/unsubscribe>,
                    <mailto:unsub@example.invalid>
                  subjectContentPlainText: Test subject
                  bodyContentHTML: |-
                    <html><body><b>This is a test
                    body.</b></body></html>
                  bodyContentPlainText: This is a test text for the text part.
  /custom/sap/v1/bounces:
    get:
      responses:
        '200':
          description: >-
            `type` is one of:


            * `Soft` - Softbounce. For further information see
            [Softbounce](https://help.inxmail.com/en/content/xcom/versandinformationen.htm)


            * `Hard` - Hardbounce. For further information see
            [Hardbounce](https://help.inxmail.com/en/content/xcom/versandinformationen.htm)


            * no value - Unknown.
          headers: {}
          content: {}
        '400':
          description: invalid filter parameters, like invalid begin and end dates
          headers: {}
          content: {}
      summary: Bounces
      operationId: Bounces
      description: >-
        ```bash

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/bounces'

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/bounces?sourceSystem=Production'

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/bounces?startTimeUTC=20151021000000&endTimeUTC=2015102220000&page=0'

        ```


        Get information about bounced emails.


        The filtering parameters are all optional. If not specified, all bounces
        are returned. Filters can be combined, only bounces that match all
        criteria are returned.


        The pagination parameters `page` and `pageSize` should be used together,
        and apply within filtered results.
      tags:
        - Bounce Data
      parameters:
        - name: sourceSystem
          in: query
          description: filters by the sourceSystem that was specified in the event data
          example: Production
          schema:
            type: string
        - name: campaignId
          in: query
          description: filters by the campaignId that was specified in the event data
          example: '4587'
          schema:
            type: string
        - name: startTimeUTC
          in: query
          description: filters bounces starting from this timestamp
          example: '20151021110033'
          schema:
            type: string
        - name: endTimeUTC
          in: query
          description: filters bounces until this timestamp
          example: '20151021110033'
          schema:
            type: string
        - name: pageSize
          in: query
          description: number of elements returned in a single response page (max. 2000)
          example: '20'
          schema:
            type: number
            default: 100
        - name: page
          in: query
          description: >-
            result page number, if the request returns more results than the
            page size
          example: '0'
          schema:
            type: number
  /custom/sap/v1/complaints:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content: {}
        '400':
          description: invalid filter parameters, like invalid begin and end dates
          headers: {}
          content: {}
      summary: Complaints
      operationId: Complaints
      description: >-
        ```bash

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/complaints'

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/complaints?sourceSystem=Production'

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/complaints?startTimeUTC=20151021000000&endTimeUTC=2015102220000&page=0'

        ```


        Get information about complaints.


        The filtering parameters are all optional. If not specified, all
        complaints are returned. Only one of `sourceSystem` or `campaignId` may
        be used. Other than that, filters can be combined, only complaints that
        match all criteria are returned.


        The pagination parameters `page` and `pageSize` should be used together,
        and apply within filtered results.
      tags:
        - Bounce Data
      parameters:
        - name: sourceSystem
          in: query
          description: filters by the sourceSystem that was specified in the event data
          example: Production
          schema:
            type: string
        - name: campaignId
          in: query
          description: filters by the campaignId that was specified in the event data
          example: '4587'
          schema:
            type: string
        - name: startTimeUTC
          in: query
          description: filters bounces starting from this timestamp
          example: '20151021110033'
          schema:
            type: string
        - name: endTimeUTC
          in: query
          description: filters bounces until this timestamp
          example: '20151021110033'
          schema:
            type: string
        - name: pageSize
          in: query
          description: number of elements returned in a single response page (max. 2000)
          example: '20'
          schema:
            type: number
            default: 100
        - name: page
          in: query
          description: >-
            result page number, if the request returns more results than the
            page size
          example: '0'
          schema:
            type: number
  /custom/sap/v1/verifiedSenders:
    get:
      responses:
        '200':
          description: OK
          headers: {}
          content: {}
      summary: Senderdomains
      operationId: Senderdomains
      description: >-
        ```bash

        curl -u 'keyid:secret'
        'https://{spaceid}.api.inxmail-commerce.com/api-service/custom/sap/v1/verifiedSenders'

        ```


        Get all valid sender domains for the current space.
      tags:
        - Senderdomains
      parameters: []
components:
  schemas: {}
tags:
  - name: General Information
  - name: Generic E-Mail-Adapter for SAP
  - name: Bounce Data
  - name: Senderdomains
