{
  "openapi": "3.0.4",
  "info": {
    "title": "INFO-Subscription API",
    "description": "This is the reference API documentation, please look at http://docs.info-subscription.com for the conceptual documentation with process descriptions etc.",
    "termsOfService": "http://www.info-subscription.com/api-terms",
    "contact": {
      "name": "Infosoft AS",
      "url": "http://www.infosoft.no",
      "email": "support@infosoft.no"
    },
    "license": {
      "name": "Use under INFO-Subscription API terms.",
      "url": "http://www.info-subscription.com/api-terms"
    },
    "version": "2018-01-01"
  },
  "servers": [
    {
      "url": "https://api.info-subscription.com"
    }
  ],
  "paths": {
    "/authorizations/source/account": {
      "post": {
        "tags": [
          "AccountSource"
        ],
        "summary": "Creates the account source asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The source a to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountSourceCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AccountSource"
        ],
        "summary": "Gets the account sources asynchronous.",
        "parameters": [
          {
            "name": "UserId",
            "in": "query",
            "description": "Get or set the user identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberAccountId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountSource"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/account/{id}": {
      "get": {
        "tags": [
          "AccountSource"
        ],
        "summary": "Gets the account source asynchronous.",
        "operationId": "GetAccountSource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountSource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AccountSource"
        ],
        "summary": "Deletes the account source asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/account/adb2c/{id}": {
      "post": {
        "tags": [
          "ADB2CAccount"
        ],
        "summary": "Creates the ADB2C account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The ADB2C account to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADB2CAccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ADB2CAccount"
        ],
        "summary": "Gets the ADB2C account asynchronous.",
        "operationId": "GetADB2CAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ADB2CAccount"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "ADB2CAccount"
        ],
        "summary": "Updates the ADB2C account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new name for identity provider.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ADB2CAccountUpdate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "ADB2CAccount"
        ],
        "summary": "Deletes the ADB2C account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/account/adb2c": {
      "get": {
        "tags": [
          "ADB2CAccount"
        ],
        "summary": "Gets the ADB2C accounts asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ADB2CAccount"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/account/auth0/{id}": {
      "post": {
        "tags": [
          "Auth0Account"
        ],
        "summary": "Creates the Auth0 account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The Auth0 account to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth0AccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Auth0Account"
        ],
        "summary": "Gets the Auth0 account asynchronous.",
        "operationId": "GetAuth0Account",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Auth0Account"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Auth0Account"
        ],
        "summary": "Updates the Auth0 account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new name for identity provider.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Auth0AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Auth0Account"
        ],
        "summary": "Deletes the Auth0 account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/account/auth0": {
      "get": {
        "tags": [
          "Auth0Account"
        ],
        "summary": "Gets the Auth0 accounts asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Auth0Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/account": {
      "post": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Creates the Autogiro account asynchronous.",
        "operationId": "AutogiroCreateAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets the Autogiro account asynchronous.",
        "operationId": "GetAutoGiroAccounts",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BankgiroCustomerNumber",
            "in": "query",
            "description": "Get or set the Autogiro customer number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BankgiroNumber",
            "in": "query",
            "description": "Get or set the Autogiro number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/account/{id}": {
      "put": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Updates the Autogiro account asynchronous.",
        "operationId": "AutogiroUpdateAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Deletes the Autogiro account asynchronous.",
        "operationId": "AutogiroDeleteAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets the Autogiro account asynchronous.",
        "operationId": "GetAutoGiroAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/export/mandate/{organizationId}": {
      "post": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Exports mandates and transactions in file to Bgc.",
        "operationId": "AutogiroExportMandate",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The orginization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutoGiroExportFileView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/export/file/{fileId}": {
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Get the autogiro export file asynchronous.",
        "operationId": "AutogiroExportFile",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "description": "The autogiro export file identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/mandate": {
      "post": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Creates a new Autogiro mandate for the given subscriber. \n Mandates are required for recurring payments (also known as Claims) to work.",
        "operationId": "AutogiroCreateMandate",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The mandate to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets a filtered collection of mandates.",
        "operationId": "GetAutoGiroMandates",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "Get or set the account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BankAccountNumber",
            "in": "query",
            "description": "Get or set the Autogiro customer number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Get or set the Autogiro number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "IncludeCancelled",
            "in": "query",
            "description": "Get or set the cancelled mandates.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IncludeRejected",
            "in": "query",
            "description": "Get or set the rejected mandates.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/mandate/{id}": {
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets a specific Autogiro mandate.",
        "operationId": "GetAutoGiroMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Cancel/Removes a specific mandate. Use this when the mandate is no longer valid.",
        "operationId": "AutogiroDeleteMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/transaction": {
      "post": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Creates a new Autogiro transaction.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The transaction to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets a filtered collection of transactions.",
        "operationId": "GetAutoGirotransactions",
        "parameters": [
          {
            "name": "MandateId",
            "in": "query",
            "description": "Get or set the mandate identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IsCancelled",
            "in": "query",
            "description": "Get or set the transaction cencellation.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/autogiro/transaction/{id}": {
      "get": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Gets a specific Autogiro transaction.",
        "operationId": "GetAutoGirotransaction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AutoGiro"
        ],
        "summary": "Cancels a specific transaction.",
        "operationId": "AutoGiroDeleteTransactions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/account": {
      "post": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Creates the AvtaleGiro account asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets the AvtaleGiro account asynchronous.",
        "parameters": [
          {
            "name": "BankAccountNumber",
            "in": "query",
            "description": "Get or set the bank account number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseComboApiEndpointURL",
            "in": "query",
            "description": "Get or set the ComboApi endpoint url",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/account/{id}": {
      "put": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Updates the AvtaleGiro account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Deletes the AvtaleGiro account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets the AvtaleGiro account asynchronous.",
        "operationId": "GetAvtaleGiroAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/account/{id}/organizations": {
      "post": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Adds organizations to the account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The organizations to add.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/account/{id}/organizations/{organizationId}": {
      "delete": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Deletes organization from the account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "The organization identifier to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/claim": {
      "post": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Creates a new claim for a given AvtaleGiro mandate.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The claim to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClaimCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Get a collection of claims with a filter.",
        "parameters": [
          {
            "name": "MandateId",
            "in": "query",
            "description": "Get or set the mandate identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Get or set the transaction identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "KID",
            "in": "query",
            "description": "Get or set the KID to search for.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClaimView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/claim/{id}": {
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets a specific AvtaleGiro claim.",
        "operationId": "GetAvtaleGiroClaim",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/claim/{id}/cancel": {
      "post": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Attempt to cancel an already scheduled AvtaleGiro claim that has not been processed yet.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/claim/{id}/shipmentstatus": {
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Get the shipment status as identified by the Mastercard API. \n Typically there is one claim per shipment.",
        "description": "The Shipment is derived from the given claim. \n\nThis method acts as a wrapper around the upstream API, and reports the Status as returned by mastercard. \n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The claim identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipmentStatusView"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/claim/{id}/status": {
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Get the specific Claim status as identified by the Mastercard API.",
        "description": "This method acts as a wrapper around the upstream API, and reports the Status as returned by mastercard. \n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the claim.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStatusView"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "502": {
            "description": "Bad Gateway"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/mandate": {
      "post": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Creates a new AvtaleGiro mandate for the given subscriber. \n Mandates are required for recurring payments (also known as Claims) to work.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The mandate to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MandateCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets a filtered collection of mandates.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "Get or set the account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IncludeCancelled",
            "in": "query",
            "description": "Get or set the cancelled mandates",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MandateView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/mandate/{id}": {
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets a specific AvtaleGiro mandate.",
        "operationId": "GetAvtaleGiroMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Cancel/Removes a specific mandate. Use this when the mandate is no longer valid.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/avtalegiro/mandate/{id}/status": {
      "get": {
        "tags": [
          "AvtaleGiro"
        ],
        "summary": "Gets the mandate status from the external API.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/balanceinvoicesetting": {
      "post": {
        "tags": [
          "BalanceInvoiceSetting"
        ],
        "summary": "(An Action that handles HTTP POST requests) creates balance invoice setting asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The balance invoice setting.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BalanceInvoiceSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BalanceInvoiceSetting"
        ],
        "summary": "Gets balance invoice settings asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BalanceInvoiceSetting"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/balanceinvoicesetting/{id}": {
      "get": {
        "tags": [
          "BalanceInvoiceSetting"
        ],
        "summary": "Get the billing plan.",
        "operationId": "GetBalanceInvoiceSetting",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BalanceInvoiceSetting"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "BalanceInvoiceSetting"
        ],
        "summary": "Deletes the balance invoice setting asynchronous described by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "BalanceInvoiceSetting"
        ],
        "summary": "Updates the balance invoice setting asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The setting.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BalanceInvoiceSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/account": {
      "post": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Creates the BetalingsService account asynchronous.",
        "operationId": "BetalingsServiceCreateAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.AccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets the BetalingsService account asynchronous.",
        "operationId": "GetBetalingsServiceAccounts",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CreditorNumber",
            "in": "query",
            "description": "Get or set the BS creditor number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GroupNumber",
            "in": "query",
            "description": "Get or set the group number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Subsystem",
            "in": "query",
            "description": "Get or set the subsystem.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Account"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/account/{id}": {
      "put": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Updates the BetalingsService account asynchronous.",
        "operationId": "BetalingsServiceUpdateAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Deletes the BetalingsService account asynchronous.",
        "operationId": "BetalingsServiceDeleteAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets the BetalingsService account asynchronous.",
        "operationId": "GetBetalingsServiceAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Account"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/export/{organizationId}": {
      "post": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Exports transactions in file to BetalingsService.",
        "operationId": "BetalingsServiceExportTransactions",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The orginization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BSExportFile"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/export/file/{fileId}": {
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Get the BetalingsService export file asynchronous.",
        "operationId": "BetalingsServiceExportFile",
        "parameters": [
          {
            "name": "fileId",
            "in": "path",
            "description": "The BetalingsService export file identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    },
                    {
                      "type": "string",
                      "format": "binary"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/mandate": {
      "post": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Creates a new BetalingsService mandate for the given subscriber. \n Mandates are required for recurring payments (also known as Claims) to work.",
        "operationId": "BetalingsServiceCreateMandate",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The mandate to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.MandateCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets a filtered collection of mandates.",
        "operationId": "GetBetalingsServiceMandates",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "Get or set the account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MandateNumber",
            "in": "query",
            "description": "Get or set the mandate number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Get or set the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "IncludeCancelled",
            "in": "query",
            "description": "Get or set the cancelled mandates.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Mandate"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/mandate/{id}": {
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets a specific BetalingsService mandate.",
        "operationId": "GetBetalingsServiceMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Mandate"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Cancel/Removes a specific mandate. Use this when the mandate is no longer valid.",
        "operationId": "BetalingsServiceDeleteMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/transaction": {
      "post": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Creates a new BetalingsService transaction.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The transaction to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.TransactionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets a filtered collection of transactions.",
        "operationId": "GetBetalingsServicetransactions",
        "parameters": [
          {
            "name": "MandateId",
            "in": "query",
            "description": "Get or set the mandate identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IsCancelled",
            "in": "query",
            "description": "Get or set the transaction cencellation.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Transaction"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/betalingsservice/transaction/{id}": {
      "get": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Gets a specific BetalingsService transaction.",
        "operationId": "GetBetalingsServicetransaction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Transaction"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "BetalingsService"
        ],
        "summary": "Cancels a specific transaction.",
        "operationId": "BetalingsServiceDeleteTransactions",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{id}/allowances": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Adds an allowance to an existing billing account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The allowance.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAllowance"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{id}/charges": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Adds a charge to an existing billing account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The charge.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCharge"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{id}/writeoff": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Write Off one or more transactions from the given Billing Account.\nFor transactions not yet billed, this corresponds to removing/deleting them. For other transactions a reversal will be posted to the subscriber ledger.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The command containing write off information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WriteOffAccountTransactions"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Creates a new billing account for the subscriber. Note that subscribers may have multiple accounts.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscriberBillingAccount"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "An Id (and location) for the billing account. It will be generated once processed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Gets billing accounts as specified by the query filter.\nAt least one filter parameter have to be set.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The identifier of the subscriber that owns the account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingAccount"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{id}": {
      "get": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Gets a specific billing account and all related transactions.",
        "operationId": "GetBillingAccountAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingAccount"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{accountId}/transactions/{id}/internaltransfer": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Transfers the transaction to another billing account on the same subscriber.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The source account id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input details controlling the transfer operation.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InternalTransferAccountTransaction"
              }
            }
          }
        },
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/accounts/{accountId}/transactions/{id}/subscribertransfer": {
      "post": {
        "tags": [
          "BillingAccount"
        ],
        "summary": "Transfers the transaction to another billing account on another subscriber.",
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "description": "The source account id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input details controlling the transfer operation.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberTransferAccountTransaction"
              }
            }
          }
        },
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billingfrequency": {
      "get": {
        "tags": [
          "BillingFrequency"
        ],
        "summary": "Get all billing frequencies.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-BillingFrequencyView\">BillingFrequencyView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingFrequencyView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billingfrequency/{id}": {
      "get": {
        "tags": [
          "BillingFrequency"
        ],
        "summary": "Get a billing frequency.",
        "description": "Gets a specific billing frequency based on its Id.",
        "operationId": "GetBillingFrequency",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing frequency identifier.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-BillingFrequencyView\">BillingFrequencyView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingFrequencyView"
                }
              }
            }
          },
          "404": {
            "description": "No Billing Frequency found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/plan": {
      "post": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Creates a billing plan.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The billing plan create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingPlanCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Get filtered billing plans.",
        "parameters": [
          {
            "name": "Frequency",
            "in": "query",
            "description": "The frequency the billing plan applies to",
            "schema": {
              "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.BillingFrequencies"
            }
          },
          {
            "name": "PaymentType",
            "in": "query",
            "description": "The payment type",
            "schema": {
              "$ref": "#/components/schemas/PaymentProviderType"
            }
          },
          {
            "name": "OmitForOrder",
            "in": "query",
            "description": "True if the fee only applies to recurring demands and not the first/order demand.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BillingPlanView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/plan/{id}": {
      "get": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Get the billing plan.",
        "operationId": "GetBillingPlan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingPlanView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Deletes a billing plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Updates a billing plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The billing plan update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingPlanUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/plan/{id}/fees": {
      "post": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Adds a invoice fee to the billing plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing pla identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The invoice fee create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceFee"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/plan/{id}/fees/{paymentType}": {
      "delete": {
        "tags": [
          "BillingPlan"
        ],
        "summary": "Deletes a invoice fee from the billing plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The billing plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "paymentType",
            "in": "path",
            "description": "The payment type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/PaymentTypes"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Creates a calendar.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The calendar create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Calendar"
        ],
        "summary": "Get all calendars.",
        "parameters": [
          {
            "name": "CalendarTypes",
            "in": "query",
            "description": "Gets or sets a list of types of the calendars.",
            "schema": {
              "$ref": "#/components/schemas/CalendarTypes"
            }
          },
          {
            "name": "IncludeOnlyActivated",
            "in": "query",
            "description": "Gets or sets a value indicating whether the only activated should be included.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CalendarView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/exception": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Add exceptions to calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The list of calendar exceptions.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ExceptionContract"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/deleteexception": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Deletes exception dates from the calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The list of dates.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "date"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/pattern": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Add patterns to calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The specific pattern.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/IntervalPatternContract"
                  },
                  {
                    "$ref": "#/components/schemas/MonthDayPatternContract"
                  },
                  {
                    "$ref": "#/components/schemas/WeekDayPatternContract"
                  }
                ],
                "description": "A pattern contract."
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/pattern/{patternId}": {
      "delete": {
        "tags": [
          "Calendar"
        ],
        "summary": "Deletes pattern from the calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "patternId",
            "in": "path",
            "description": "The pattern identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}": {
      "get": {
        "tags": [
          "Calendar"
        ],
        "summary": "Get the calendar.",
        "operationId": "GetCalendar",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CalendarView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Calendar"
        ],
        "summary": "Updates a calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The calendar update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Calendar"
        ],
        "summary": "Deletes a calendar.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/releases": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Gets releases asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarQueryDates"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/releases": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Gets releases for calendar asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarQueryDates"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/hasrelease": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "(An Action that handles HTTP POST requests) has release asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarQueryDate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/calendar/{id}/hasrelease": {
      "post": {
        "tags": [
          "Calendar"
        ],
        "summary": "Has release for calendar asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The query.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CalendarQueryDate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReleaseView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/category": {
      "post": {
        "tags": [
          "Category"
        ],
        "summary": "Creates a new category.",
        "description": "This will create a new category based on given parameters.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters of the category to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the category was created. The response body includes the created <a href=\"#model-CategoryView\">CategoryView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Category"
        ],
        "summary": "Get all categories.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CategoryView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/category/{id}": {
      "delete": {
        "tags": [
          "Category"
        ],
        "summary": "Deletes a category.",
        "description": "Deletes the category with the given identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Category identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The category has been deleted."
          },
          "404": {
            "description": "No category was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Category"
        ],
        "summary": "Get a category.",
        "description": "Gets a specific category based on its identifier.",
        "operationId": "GetCategory",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The category identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-CategoryView\">CategoryView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryView"
                }
              }
            }
          },
          "404": {
            "description": "No category was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Category"
        ],
        "summary": "Update the category.",
        "description": "Updates the category with new parameters, note that all fields are updated with the given\nvalues.\n\nThe Category Id in the URL and the\n<a href=\"#model-CategoryUpdate\">category</a> must be the same Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The category identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new category parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The category was updated."
          },
          "404": {
            "description": "No category was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/configuration/{organizationId}": {
      "post": {
        "tags": [
          "Configuration"
        ],
        "summary": "Creates the distribution innovation configuration asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The distribution innovation configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigurationCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigurationView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Gets the distribution innovation configuration asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConfigurationView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Configuration"
        ],
        "summary": "Updates the distribution innovation configuration asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The distribution innovation configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigurationUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Configuration"
        ],
        "summary": "Deletes the distribution innovation configuration asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/configuration": {
      "get": {
        "tags": [
          "Configuration"
        ],
        "summary": "Gets the distribution innovation configurations asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ConfigurationView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/creditnote": {
      "get": {
        "tags": [
          "CreditNote"
        ],
        "summary": "Get filtered credit notes.",
        "operationId": "GetCreditNotes",
        "parameters": [
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the invoice identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CreditNoteNumber",
            "in": "query",
            "description": "Gets or sets the credit note number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Gets or sets the end date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Gets or sets the start date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Filters on the subscriber Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MinimumIssuedOn",
            "in": "query",
            "description": "The minimum date that the Issued time should be within range of. For Reminder this is the ReminderDate.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumIssuedOn",
            "in": "query",
            "description": "The max date that the Issued time should be within range of.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExternalInvoiceIdentifier",
            "in": "query",
            "description": "Filters on the external identifier, uses exact matching. For Reminders this refers to the original Invoice.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceNumber",
            "in": "query",
            "description": "Filters on the invoice number. For credit notes and reminders this refers to the Original Invoice Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Filters by OrganizationId if set. If not set all organizations are considered.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TrackingId",
            "in": "query",
            "description": "Filters on the external tracking Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BuyerReference",
            "in": "query",
            "description": "Gets or sets the buyer reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderReference",
            "in": "query",
            "description": "Gets or sets the order reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CreditNote"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/creditnote/{id}": {
      "get": {
        "tags": [
          "CreditNote"
        ],
        "summary": "Gets credit note for identifier.",
        "operationId": "GetCreditNote",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreditNote"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "CreditNote"
        ],
        "summary": "Updates the credit note with new details if applicable.",
        "operationId": "UpdateCreditNoteAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The credit note identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Credit note update input details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditNoteUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "404": {
            "description": "No credit note was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "202": {
            "description": "The update has been accepted for processing."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/creditnote/{id}/file": {
      "post": {
        "tags": [
          "CreditNoteFile"
        ],
        "summary": "Upload a credit note file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "the credit note identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "File",
                  "Type"
                ],
                "type": "object",
                "properties": {
                  "Type": {
                    "type": "string",
                    "description": "Gets or sets the type."
                  },
                  "File": {
                    "type": "string",
                    "description": "Gets or sets the file.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "Type": {
                  "style": "form"
                },
                "File": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "CreditNoteFile"
        ],
        "summary": "Get the credit note files.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The credit note identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CreditNoteFileView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/creditnote/{id}/file/{type}": {
      "get": {
        "tags": [
          "CreditNoteFile"
        ],
        "summary": "Get the credit note file.",
        "operationId": "GetCreditNoteFileAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The credit note identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The credit note file type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "CreditNoteFile"
        ],
        "summary": "Delete the credit note file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The credit note identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The credit note file  type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/configuration": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Creates the delivery configuration asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The delivery configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryConfigurationCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryConfigurationView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the delivery configuration asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryConfigurationView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/deliverymatrix": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Creates the delivery matrix asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create delivery matrix object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryMatrixCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DeliveryMatrixView"
                    },
                    {
                      "$ref": "#/components/schemas/ProductDeliveryMatrixView"
                    }
                  ],
                  "description": "Represents a view contract of delivery matrix."
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the delivery matrices asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/DeliveryMatrixView"
                      },
                      {
                        "$ref": "#/components/schemas/ProductDeliveryMatrixView"
                      }
                    ],
                    "description": "Represents a view contract of delivery matrix."
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/deliverymatrix/{id}": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The delivery matrix identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DeliveryMatrixView"
                    },
                    {
                      "$ref": "#/components/schemas/ProductDeliveryMatrixView"
                    }
                  ],
                  "description": "Represents a view contract of delivery matrix."
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Deletes the delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The delivery matrix identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Delivery"
        ],
        "summary": "Updates the delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The delivery matrix identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The delivery matrix update object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryMatrixUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/productdelivery/{productId}": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Creates product delivery matrix.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The product delivery matrix create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDeliveryMatrixCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Deletes the product delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the product delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DeliveryMatrixView"
                    },
                    {
                      "$ref": "#/components/schemas/ProductDeliveryMatrixView"
                    }
                  ],
                  "description": "Represents a view contract of delivery matrix."
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Delivery"
        ],
        "summary": "Updates the product delivery matrix asynchronous.",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The product delivery matrix update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDeliveryMatrixUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/productdelivery": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets all product delivery matrices asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDeliveryMatrixView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Starts the delivery for subscriber/product asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The delivery start object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryStart"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets all deliveries.",
        "parameters": [
          {
            "name": "ProductId",
            "in": "query",
            "description": "Gets or sets the identifier of the product.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CoversDate",
            "in": "query",
            "description": "Gets or sets the covers date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DeliveryView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/{id}/end": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Ends the existing delivery asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The delivery identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The delivery end object.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryEnd"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/{id}": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the delivery asynchronous.",
        "operationId": "GetDelivery",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The delivery identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeliveryView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/product/{id}/calendar": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the product delivery calendar.",
        "operationId": "GetProductDeliveryCalendarAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product delivery calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDeliveryCalendar"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Create the product delivery calendar.",
        "operationId": "CreateProductDeliveryCalendarAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product delivery calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The product delivery calendar create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDeliveryCalendarCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDeliveryCalendar"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Delivery"
        ],
        "summary": "Update the product delivery calendar.",
        "operationId": "UpdateProductDeliveryCalendarAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product delivery calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The product delivery calendar update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductDeliveryCalendarUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDeliveryCalendar"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Delete the product delivery calendar.",
        "operationId": "DeleteProductDeliveryCalendarAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product delivery calendar identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/product/calendar": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets product delivery calendars.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductDeliveryCalendar"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/changedelivery": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Creates planned change asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The planned change configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlannedChangeCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannedChangeView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the planned changes asynchronous.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Gets or sets the delivery type.",
            "schema": {
              "$ref": "#/components/schemas/PlannedChangeType"
            }
          },
          {
            "name": "PlannedDate",
            "in": "query",
            "description": "Gets or sets the time when the delivery should be changed.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "SubscriberContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlannedChangeView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/changedelivery/{id}": {
      "put": {
        "tags": [
          "Delivery"
        ],
        "summary": "Updates the planned change asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The planned change identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Theplanned change.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlannedChangeUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the planned change asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The planned change identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannedChangeView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Deletes the planned change asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The planned change identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/temporaryaddress": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Creates temporary address asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The temporary address configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemporaryAddressCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryAddressView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the temporary addresses asynchronous.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PlannedDate",
            "in": "query",
            "description": "Gets or sets the time when the delivery should be changed.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "SubscriberContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "NewSubscriberContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the new subscriber contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemporaryAddressView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/temporaryaddress/{id}": {
      "put": {
        "tags": [
          "Delivery"
        ],
        "summary": "Updates the temporary address asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The temporary address identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The temporary address.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemporaryAddressUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the temporary address asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The temporary address identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemporaryAddressView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Deletes the temporary address asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The temporary address identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/files/{id}": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the distribution export.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DistributionExportView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/files": {
      "get": {
        "tags": [
          "Delivery"
        ],
        "summary": "Gets the distribution export by query filter asynchronous.",
        "parameters": [
          {
            "name": "IncludeCancelledFiles",
            "in": "query",
            "description": "Gets or sets a value indicating whether [include cancelled files].",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "DistributionDate",
            "in": "query",
            "description": "Gets or sets the distribution date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MinimumProductionDate",
            "in": "query",
            "description": "Gets or sets the minimum production date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumProductionDate",
            "in": "query",
            "description": "Gets or sets the maximum production date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Provider",
            "in": "query",
            "description": "Gets or sets the provider.",
            "schema": {
              "$ref": "#/components/schemas/Provider"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "FileType",
            "in": "query",
            "description": "Gets or sets the type of the file.",
            "schema": {
              "$ref": "#/components/schemas/FileType"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DistributionExportView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/delivery/files/{id}/cancel": {
      "post": {
        "tags": [
          "Delivery"
        ],
        "summary": "Cancel the distribution export.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/gdpr/delivery": {
      "delete": {
        "tags": [
          "Delivery"
        ],
        "summary": "Deletes the deliveries asynchronous.",
        "parameters": [
          {
            "name": "subscriberId",
            "in": "query",
            "description": "The subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/{id}": {
      "get": {
        "tags": [
          "Demands"
        ],
        "summary": "Gets a specific payment demand.",
        "operationId": "GetPaymentDemand",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/PaymentDemandView"
                    },
                    {
                      "$ref": "#/components/schemas/AccountPaymentDemandView"
                    },
                    {
                      "$ref": "#/components/schemas/EnterprisePlanDemandView"
                    },
                    {
                      "$ref": "#/components/schemas/OrderPaymentDemandView"
                    },
                    {
                      "$ref": "#/components/schemas/SubscriptionPaymentDemandView"
                    }
                  ],
                  "description": "Properties detailing a demand for a payment for services ordered or already rendered.\n            Provides the source billing data used to generate invoices."
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand": {
      "get": {
        "tags": [
          "Demands"
        ],
        "summary": "Return a collection of payment demands that matches the given query filter.",
        "parameters": [
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CreditLedgerId",
            "in": "query",
            "description": "Gets or sets the identifier of the credit ledger.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CreditNoteId",
            "in": "query",
            "description": "Gets or sets the identifier of the credit note.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of the order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "NextSubscriptionId",
            "in": "query",
            "description": "Gets or sets the identifier of the next subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberAccount",
            "in": "query",
            "description": "Gets or sets the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the enterprise plan identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/PaymentDemandView"
                      },
                      {
                        "$ref": "#/components/schemas/AccountPaymentDemandView"
                      },
                      {
                        "$ref": "#/components/schemas/EnterprisePlanDemandView"
                      },
                      {
                        "$ref": "#/components/schemas/OrderPaymentDemandView"
                      },
                      {
                        "$ref": "#/components/schemas/SubscriptionPaymentDemandView"
                      }
                    ],
                    "description": "Properties detailing a demand for a payment for services ordered or already rendered.\n            Provides the source billing data used to generate invoices."
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "Demands"
        ],
        "summary": "Creates a new demand.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Options for controlling the operation.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDemand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/{id}/reminders": {
      "get": {
        "tags": [
          "Demands"
        ],
        "summary": "Gets all generated reminders for the given payment demand.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentDemandReminderView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/{id}/credit": {
      "post": {
        "tags": [
          "Demands"
        ],
        "summary": "Credits the given payment demand, and optionally re issue a one based on the given options.",
        "description": "Depending on the type of demand being credited the rules for what is possible and what is not, are slightly different. \n.\nFor instance it is not possible to re-issue/replace an Enterprise Plan Payment Demand using endpoint.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Options for controlling the operation, such as how to generate a new demand or what details to credit.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreditPaymentDemand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The credit action has been accepted and will be processed as soon as possible."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/{id}/writeoff": {
      "post": {
        "tags": [
          "Demands"
        ],
        "summary": "Writes off the given payment demand.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Options for controlling the operation, such as the time and reason for the write-off.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WriteOffPaymentDemand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The write-off action has been accepted and will be processed as soon as possible."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/reminderschedules": {
      "get": {
        "tags": [
          "Demands"
        ],
        "summary": "Get payment demand reminder schedules.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the billing plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the subscription identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the payment method type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the enterprise plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the order identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "The identifier of the payment demand that the reminder is for.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets OrganizationId identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DemandReminderSchedule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/demandschedules": {
      "get": {
        "tags": [
          "Demands"
        ],
        "summary": "Get payment demand schedules based on the query parameters.",
        "operationId": "GetDemandSchedules",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the billing plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the subscription identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Gets or sets the payment method",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentMethodType",
            "in": "query",
            "description": "Gets or sets the payment method type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the enterprise plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the order identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets OrganizationId identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DemandSchedule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentdemand/{id}/reminder": {
      "post": {
        "tags": [
          "Demands"
        ],
        "summary": "Creates a reminder directly on the specified payment demand, bypassing the dunning schedule pipeline.",
        "description": "Use this when an external party (e.g. a debt collector) drives the reminder process and the resulting\ninvoice document and ledger side-effects need to be reflected in INFO-Subscription without the external\nparty interfering with payment processing.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reminder parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentDemandReminder"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The reminder creation has been accepted and will be processed as soon as possible."
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/demandschedule": {
      "get": {
        "tags": [
          "DemandSchedule"
        ],
        "summary": "Get all demand schedule.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the billing plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the subscription identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Gets or sets the payment method",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PaymentMethodType",
            "in": "query",
            "description": "Gets or sets the payment method type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the enterprise plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the order identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets OrganizationId identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collections of payment demand schedule objects based on filter criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DemandSchedule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/demandschedulereminder": {
      "get": {
        "tags": [
          "DemandScheduleReminder"
        ],
        "summary": "Get all demand schedule reminder based on query filter.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the billing plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the subscription identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the payment method type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the enterprise plan identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the order identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "The identifier of the payment demand that the reminder is for.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets OrganizationId identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collections of payment demand reminder schedule objects based on filter criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DemandReminderSchedule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/demandschedulereminder/{id}/reschedule": {
      "post": {
        "tags": [
          "DemandScheduleReminder"
        ],
        "summary": "Reschedule the specified payment demand reminder schedule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The schedule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reschedule information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentDemandReminderReschedule"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The payment demand reminder schedule has been rescheduled."
          },
          "404": {
            "description": "No process found to process"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/denialorder/{id}": {
      "get": {
        "tags": [
          "DenialOrder"
        ],
        "summary": "Gets an denial order .",
        "description": "Gets a denial order  based on its Id.",
        "operationId": "GetDenialOrder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The denial order  identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-EnterprisePlanOrderView\">DenialOrderView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DenialOrderView"
                }
              }
            }
          },
          "404": {
            "description": "No denial order  was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "DenialOrder"
        ],
        "summary": "Deletes the denial order  asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The denial order  has been deleted."
          },
          "404": {
            "description": "No denial order  was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/denialorder": {
      "get": {
        "tags": [
          "DenialOrder"
        ],
        "summary": "Gets all the denial order .",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Gets or sets the type.",
            "schema": {
              "$ref": "#/components/schemas/DenialOrderType"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-DenialOrderView\">DenialOrderView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DenialOrderView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "DenialOrder"
        ],
        "summary": "Adds the denial order  asynchronous.\nDenial order is created for the subscriber if the negative balance of said subscriber exceeds a configured limit.\nThis is configured by creating a new DenialOrder .",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The denial order .",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DenialOrderCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success, the denial order  was created. The response body includes the created <a href=\"#model-DenialOrderView\">DenialOrderView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/denialorder/configuration/ledgerbalance/{id}": {
      "get": {
        "tags": [
          "DenialOrderConfiguration"
        ],
        "summary": "Gets an denial order configuration.",
        "description": "Gets a denial order configuration based on its Id.",
        "operationId": "GetDenialOrderConfiguration",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The denial order configuration identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-EnterprisePlanLedgerView\">DenialOrderConfigurationView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DenialOrderConfigurationView"
                }
              }
            }
          },
          "404": {
            "description": "No denial order configuration was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "DenialOrderConfiguration"
        ],
        "summary": "Updates the denial order configuration asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The denial order configuration plan update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DenialOrderConfigurationUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The denial order configuration was updated."
          },
          "404": {
            "description": "No denial order configuration was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "DenialOrderConfiguration"
        ],
        "summary": "Deletes the denial order configuration asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The denial order configuration has been deleted."
          },
          "404": {
            "description": "No denial order configuration was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/denialorder/configuration/ledgerbalance": {
      "get": {
        "tags": [
          "DenialOrderConfiguration"
        ],
        "summary": "Gets all the denial order configuration.",
        "parameters": [
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-DenialOrderConfigurationView\">DenialOrderConfigurationView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DenialOrderConfigurationView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "DenialOrderConfiguration"
        ],
        "summary": "Adds the denial order configuration asynchronous.\nDenial order is created for the subscriber if the negative balance of said subscriber exceeds a configured limit.\nThis is configured by creating a new DenialOrder configuration.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The denial order configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DenialOrderConfigurationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success, the denial order configuration was created. The response body includes the created <a href=\"#model-DenialOrderConfigurationView\">DenialOrderConfigurationView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/domain": {
      "post": {
        "tags": [
          "DomainAuthorization"
        ],
        "summary": "Creates the domain authorization asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The domain authorization to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DomainAuthorizationCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "DomainAuthorization"
        ],
        "summary": "Gets the domain authorizations asynchronous.",
        "parameters": [
          {
            "name": "DomainName",
            "in": "query",
            "description": "Gets or sets the domain name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SubscriberAccountId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DomainAuthorization"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/domain/{id}": {
      "get": {
        "tags": [
          "DomainAuthorization"
        ],
        "summary": "Gets the account source asynchronous.",
        "operationId": "GetDomainAuthorization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainAuthorization"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "DomainAuthorization"
        ],
        "summary": "Deletes the domain authorization asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The domain authorization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning": {
      "post": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Creates a new dunning process.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Input parameters for the process to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DunningProcessCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Get dunning processes with an optional filter.",
        "parameters": [
          {
            "name": "queryFilter",
            "in": "query",
            "description": "Query filtering parameters.",
            "schema": {
              "$ref": "#/components/schemas/DunningProcessQuery"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DunningProcess"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}": {
      "get": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Get the dunning process by its Id.",
        "operationId": "GetDunningProcess",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DunningProcess"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Updates the dunning process asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The dunning process update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DunningProcessUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Deletes a dunning process.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/stoprule": {
      "post": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Adds the stop rule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The stop rule.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StopRuleCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/stoprule/{stopruleId}": {
      "delete": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Deletes the stop rule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "stopruleId",
            "in": "path",
            "description": "The stoprule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/reminders": {
      "post": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Adds a reminder settings to the dunning process.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reminder settings create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReminderSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/reminders/{reminderId}": {
      "delete": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Deletes a reminder settings.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process idetntifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "reminderId",
            "in": "path",
            "description": "The reminder settings identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Updates a reminder settings.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process idetntifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "reminderId",
            "in": "path",
            "description": "The reminder settings identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reminder settings update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReminderSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/paymentrequest": {
      "post": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Adds payment request settings to the dunning process asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The payment request settings create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/paymentrequest/{paymentRequestId}": {
      "delete": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Deletes payment request settings asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "paymentRequestId",
            "in": "path",
            "description": "The payment request settings identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Updates payment request settings asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "paymentRequestId",
            "in": "path",
            "description": "The payment request settings identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The payment request settings update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestSettingsCreate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/dunning/{id}/settlementpolicy": {
      "put": {
        "tags": [
          "DunningProcess"
        ],
        "summary": "Add or Replace settlement policy on the Dunning Process.",
        "operationId": "SetSettlementPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The dunning process to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Settlement Policy values to set.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.FixedAmountDifferencePolicy"
                  },
                  {
                    "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.PercentOfDemandPolicy"
                  }
                ],
                "description": "Interface for settlement policy."
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The request has been queued and will be processed."
          },
          "404": {
            "description": "No dunning process found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/account": {
      "post": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Creates the eFaktura account asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Gets the eFaktura account asynchronous.",
        "parameters": [
          {
            "name": "BankAccountNumber",
            "in": "query",
            "description": "Get or set the bank account number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BaseComboApiEndpointURL",
            "in": "query",
            "description": "Get or set the ComboApi endpoint url",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/account/{id}": {
      "put": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Updates the eFaktura account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Deletes the eFaktura account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Gets the eFaktura account asynchronous.",
        "operationId": "GetEFakturaAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/account/{id}/organizations": {
      "post": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Adds organizations to the eFaktura account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The organizations to add.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Organization"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/account/{id}/organizations/{organizationId}": {
      "delete": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Deletes organization from the eFaktura account asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "organizationId",
            "in": "path",
            "description": "The organization identifier to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/agreement": {
      "post": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Creates a new eFaktura agreement for the given subscriber. \n Agreements are required for recurring payments to work.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The eFaktura agreement to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EFakturaAgreementCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Gets a filtered collection of eFaktura agreements.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "Get or set the account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IncludeCancelled",
            "in": "query",
            "description": "Get or set the cancelled mandates",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EFakturaAgreementView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/agreement/{id}": {
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Gets a specific eFaktura agreemente.",
        "operationId": "GetEFakturaAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The eFaktura agreement identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EFakturaAgreementView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Cancel/Removes a specific eFaktura agreement. Use this when the eFaktura agreement is no longer valid.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The eFaktura agreement identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/transaction": {
      "post": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Creates a new eFaktura transaction for a given agreement.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The transaction to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EFakturaTransactionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Get a collection of eFaktura transactions with a filter.",
        "parameters": [
          {
            "name": "AgreementId",
            "in": "query",
            "description": "Get or set the agreement identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ExternalTransactionId",
            "in": "query",
            "description": "Get or set the external transaction identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EFakturaTransactionView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/transaction/{id}": {
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Gets a specific eFaktura transaction.",
        "operationId": "GetEFakturaTransaction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EFakturaTransactionView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/transaction/{id}/cancel": {
      "post": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Attempt to cancel an already scheduled eFaktura transaction that has not been processed yet.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/efaktura/transaction/{id}/status": {
      "get": {
        "tags": [
          "EFaktura"
        ],
        "summary": "Get the transaction state as identified by the eFaktura Shipment API. \n Typically there is one transaction per shipment.",
        "description": "This method acts as a wrapper around the eFaktura API, and reports the Status as returned by eFaktura. \n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The transaction identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShipmentStatusView"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/ehfvalidation/organization/{organizationNumber}": {
      "post": {
        "tags": [
          "EhfValidation"
        ],
        "summary": "Validate organization number",
        "parameters": [
          {
            "name": "organizationNumber",
            "in": "path",
            "description": "The organization number",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationNumberValidationResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "201": {
            "description": "Success, the refund was added. The response body includes the created <a href=\"#model-RefundView\">RefundView</a> instance."
          }
        }
      }
    },
    "/ehfvalidation/organization": {
      "get": {
        "tags": [
          "EhfValidation"
        ],
        "summary": "Query for multiple issues with filtering.",
        "parameters": [
          {
            "name": "OrganizationNumber",
            "in": "query",
            "description": "Gets or sets the organization number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the original invoice identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationNumberValidationIssue"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/emaildomain": {
      "post": {
        "tags": [
          "EmailDomainAuthorizationSource"
        ],
        "summary": "Creates the email domain authorization source asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The source a to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmailDomainAuthorizationSourceCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "format": "uuid"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EmailDomainAuthorizationSource"
        ],
        "summary": "Gets the email domain authorization sources asynchronous.",
        "parameters": [
          {
            "name": "UserId",
            "in": "query",
            "description": "Get or set the user identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "DomainAuthorizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the domain authorization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EmailDomainAuthorizationSource"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/emaildomain/{id}": {
      "get": {
        "tags": [
          "EmailDomainAuthorizationSource"
        ],
        "summary": "Gets the email domain authorization source asynchronous.",
        "operationId": "GetEmailDomainAuthorizationSource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmailDomainAuthorizationSource"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "EmailDomainAuthorizationSource"
        ],
        "summary": "Deletes the email domain authorization source asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan": {
      "post": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Create a new enterprise plan.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The enterprise plan parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnterprisePlanCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The enterprise plan was created, the response body contains a <a href=\"#model-EnterprisePlanView\">EnterprisePlanView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnterprisePlanView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Get enterprise plans.",
        "description": "Get enterprise plans based on filter parameters.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PaymentView\">PaymentView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnterprisePlanView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}/cancelsubscriptions": {
      "post": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Cancel subscriptions asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelSubscriptionsOnEnterprisePlan"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}": {
      "delete": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Deletes an enterprise plan.",
        "description": "Deletes the enterprise plane with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The enterprise plan has been deleted."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Get an enterprise plan.",
        "description": "Gets a specific enterprise plan based on its Id.",
        "operationId": "GetEnterprisePlan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-EnterprisePlanView\">EnterprisePlanView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnterprisePlanView"
                }
              }
            }
          },
          "404": {
            "description": "No enterprise plan was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Update an enterprise plan.",
        "description": "Updates a specific enterprise plan based on its Id and supplied parameters.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The update parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EnterprisePlanUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The enterprise plan has been deleted."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}/activate": {
      "post": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Activates an enterprise plan.",
        "description": "Activates a specific enterprise plan based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The enterprise plan has been activated."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}/expire": {
      "post": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Expires an enterprise plan.",
        "description": "Expires a specific enterprise plan based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The enterprise plan has been expired."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}/reopen": {
      "post": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Reopens an expired enterpris plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The enterprise plan has been reopened."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplan/{id}/paymentagreement/{newPaymentAgreementId}": {
      "put": {
        "tags": [
          "EnterprisePlan"
        ],
        "summary": "Changes payment agreement.",
        "description": "Changes payment agreement on the enterprise plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The enterprise plan identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "newPaymentAgreementId",
            "in": "path",
            "description": "The identifier of the new payment agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The payment agreement has been changed."
          },
          "404": {
            "description": "No enterprise plan was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplanledger/{id}": {
      "get": {
        "tags": [
          "EnterprisePlanLedger"
        ],
        "summary": "Gets an enterprise plan ledger.",
        "description": "Gets a specific enterprise plan ledger based on its Id.",
        "operationId": "GetEnterprisePlanLedger",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ledger identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-EnterprisePlanLedgerView\">EnterprisePlanLedgerView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnterprisePlanLedgerView"
                }
              }
            }
          },
          "404": {
            "description": "No ledger was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/enterpriseplanledger": {
      "get": {
        "tags": [
          "EnterprisePlanLedger"
        ],
        "summary": "Gets all the enterprise plan ledgers.",
        "parameters": [
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-EnterprisePlanLedgerView\">EnterprisePlanLedgerView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EnterprisePlanLedgerView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/eventnotification": {
      "post": {
        "tags": [
          "Events"
        ],
        "summary": "Enables event notifications on this tenant, this is a one time operation. Doing it multiple\ntimes has no effect.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "The request has been accepted and will be processed as soon as possible.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/eventnotification/webhook/{name}": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Gets a specific web hook by its name.",
        "operationId": "GetWebHookByNameAsync",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the webhook to get.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A <a href=\"#model-WebhookView\">WebHook</a> object instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Events"
        ],
        "summary": "Deletes the webhook with the given name.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the webhook to delete.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "No webhook was found with the given name."
          },
          "202": {
            "description": "The request was accepted and will be processed shortly."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Events"
        ],
        "summary": "Registers a new web hook or updates an existing one.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "The name of the webhook to create or update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The web hook details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A <a href=\"#model-WebHook\">WebHook</a> object instance."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/eventnotification/webhook": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Get all web hooks.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-WebhookView\">WebHook</a> object instances.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/eventnotification/webhook/{name}/remote": {
      "get": {
        "tags": [
          "Events"
        ],
        "summary": "Returns the webhook's remote status.",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Event subscription name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookStatus"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/export/saft": {
      "post": {
        "tags": [
          "Export"
        ],
        "summary": "(An Action that handles HTTP POST requests) export saft file./",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Options for controlling the operation.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SAFTParameters"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/external": {
      "post": {
        "tags": [
          "ExternalStaticProductSource"
        ],
        "summary": "Creates the external source asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The source a to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalStaticProductSourceCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ExternalStaticProductSource"
        ],
        "summary": "Gets the external sources asynchronous.",
        "parameters": [
          {
            "name": "UserId",
            "in": "query",
            "description": "Get or set the user identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Gets or sets the name of the source (like the name of the external system)",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ExternalStaticProductSource"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/external/{id}": {
      "get": {
        "tags": [
          "ExternalStaticProductSource"
        ],
        "summary": "Gets the external source asynchronous.",
        "operationId": "GetExternalSource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalStaticProductSource"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "ExternalStaticProductSource"
        ],
        "summary": "Deletes the external source asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "ExternalStaticProductSource"
        ],
        "summary": "Updates the external source asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The source a to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalStaticProductSourceUpdate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/file": {
      "post": {
        "tags": [
          "File"
        ],
        "summary": "Adds new file to the blob storage.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "CategoryId",
                  "File",
                  "FileName",
                  "RootFolder",
                  "Type"
                ],
                "type": "object",
                "properties": {
                  "FileName": {
                    "type": "string",
                    "description": "Gets or sets the name."
                  },
                  "CategoryId": {
                    "type": "string",
                    "description": "Gets or sets the identifier of the category.",
                    "format": "uuid"
                  },
                  "OrganizationId": {
                    "type": "string",
                    "description": "Gets or sets the identifier of the organization.",
                    "format": "uuid"
                  },
                  "File": {
                    "type": "string",
                    "description": "Gets or sets the file.",
                    "format": "binary"
                  },
                  "Type": {
                    "type": "string",
                    "description": "The file type."
                  },
                  "RootFolder": {
                    "type": "string",
                    "description": "The root folder."
                  }
                }
              },
              "encoding": {
                "FileName": {
                  "style": "form"
                },
                "CategoryId": {
                  "style": "form"
                },
                "OrganizationId": {
                  "style": "form"
                },
                "File": {
                  "style": "form"
                },
                "Type": {
                  "style": "form"
                },
                "RootFolder": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FileView"
                    },
                    {
                      "$ref": "#/components/schemas/FileViewWithUrl"
                    }
                  ],
                  "description": "A blob file view"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          },
          "201": {
            "description": "Success, the file was added. The response body includes the guid that identifies the added\nnewly file."
          }
        }
      },
      "get": {
        "tags": [
          "File"
        ],
        "summary": "Get details for all files.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of file details.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/FileView"
                      },
                      {
                        "$ref": "#/components/schemas/FileViewWithUrl"
                      }
                    ],
                    "description": "A blob file view"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/file/{id}": {
      "get": {
        "tags": [
          "File"
        ],
        "summary": "Get file with the given Id.",
        "operationId": "GetFileAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "id file category.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/file/{id}/details": {
      "get": {
        "tags": [
          "File"
        ],
        "summary": "Get details for a specific file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the file.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/FileView"
                    },
                    {
                      "$ref": "#/components/schemas/FileViewWithUrl"
                    }
                  ],
                  "description": "A blob file view"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{organizationId}/identifications": {
      "post": {
        "tags": [
          "Identifications"
        ],
        "summary": "Add new Identification for an Organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Organization Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The Identification parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentificationCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the Identification was created. The response body includes the entire organization in an <a href=\"#model-OrganizationView\">OrganizationView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentificationView"
                }
              }
            }
          },
          "404": {
            "description": "No organization was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Identifications"
        ],
        "summary": "Get identifications for an Organization.",
        "operationId": "GetIdentification",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-IdentificationView\">IdentificationView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdentificationView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "No Organization found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{organizationId}/identifications/{id}": {
      "delete": {
        "tags": [
          "Identifications"
        ],
        "summary": "Deletes an Organization Identification.",
        "description": "Deletes the Organization Identification with the given Id.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The Organization Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "The Identification Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The Organization Identification has been deleted."
          },
          "404": {
            "description": "No Organization Identification was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider": {
      "post": {
        "tags": [
          "IdentityProvider"
        ],
        "summary": "Creates the identity provider asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The identity provider to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProviderCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "IdentityProvider"
        ],
        "summary": "Gets the identity providers asynchronous.",
        "parameters": [
          {
            "name": "Name",
            "in": "query",
            "description": "Gets or sets the name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IntegrationType",
            "in": "query",
            "description": "Gets or sets the integration type.",
            "schema": {
              "$ref": "#/components/schemas/IntegrationType"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdentityProvider"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/{id}": {
      "get": {
        "tags": [
          "IdentityProvider"
        ],
        "summary": "Gets the identity provider asynchronous.",
        "operationId": "GetIdentityProvider",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityProvider"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "IdentityProvider"
        ],
        "summary": "Deletes the identity provider asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/{id}/rename": {
      "post": {
        "tags": [
          "IdentityProvider"
        ],
        "summary": "Renames the identity provider asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identity provider identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new name for identity provider.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/documentnetwork/lookup": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Lookup Supported Network Document types for a given company/entity identified by the\nrespective network Id.",
        "description": "This relies on a third party to handle the actual network lookup. \n\nFor most operations it is assumed that there is one country specific network to query.",
        "operationId": "InvoiceDocumentNetworkLookup",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Input parameters for a network lookup request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentNetworkLookupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentNetworkLookupResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/documentnetwork/submit": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Generate Infosoft XML and submit (or re-generate and re-submit) an already existing document\nto the PEPPOL network. The main use for this method is to submit an invoice after the\nrequired PEPPOL information has been adjusted to the invoice, regardless of its previous\nstate.",
        "description": "This does not verify the invoice for validity, it just generates the XML and submits it to\nthe PEPPOL network. \n If it is not valid, upstream error handling applies just as it\nwould otherwise.",
        "operationId": "DocumentSubmitToPeppol",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPeppolDocumentRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get an invoice.",
        "description": "Gets a specific invoice based on its Id.",
        "operationId": "GetInvoice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-Invoice\">Invoice</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Invoice"
                }
              }
            }
          },
          "404": {
            "description": "No Invoice was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Invoice"
        ],
        "summary": "Updates the invoice with new details if applicable.",
        "description": "\nThis is only available on Invoices with state Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState.Open\n            or Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState.Issued .",
        "operationId": "UpdateInvoiceAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Invoice update input details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "404": {
            "description": "No invoice was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "202": {
            "description": "The update has been accepted for processing."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get all invoices.",
        "operationId": "GetInvoices",
        "parameters": [
          {
            "name": "CreditNoteId",
            "in": "query",
            "description": "Filters on the Credit Note. Invoices without credit notes will not be included.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Gets or sets the end date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Gets or sets the start date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "State",
            "in": "query",
            "description": "Filters invoices by state. Supports combined flag values for OR-semantics.\nE.g. `State=Issued,Paid` returns invoices in either the Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState.Issued or Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState.Paid state.\n\nNote: invoice states are never combined in storage; each invoice always has exactly one state.\nThe combined flag value is only used as a filter expression.\nInfosoft.S4.Invoice.Contracts.ReadModel.InvoiceState.Open is handled with exact equality and will never be included\nwhen filtering on any other state value, even if combined.",
            "schema": {
              "$ref": "#/components/schemas/Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Filters on the subscriber Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MinimumIssuedOn",
            "in": "query",
            "description": "The minimum date that the Issued time should be within range of. For Reminder this is the ReminderDate.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumIssuedOn",
            "in": "query",
            "description": "The max date that the Issued time should be within range of.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExternalInvoiceIdentifier",
            "in": "query",
            "description": "Filters on the external identifier, uses exact matching. For Reminders this refers to the original Invoice.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceNumber",
            "in": "query",
            "description": "Filters on the invoice number. For credit notes and reminders this refers to the Original Invoice Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Filters by OrganizationId if set. If not set all organizations are considered.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TrackingId",
            "in": "query",
            "description": "Filters on the external tracking Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BuyerReference",
            "in": "query",
            "description": "Gets or sets the buyer reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderReference",
            "in": "query",
            "description": "Gets or sets the order reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-Invoice\">Invoice</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Invoice"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/reminder/{id}": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get a reminder.",
        "description": "Gets a specific reminder based on its Id.",
        "operationId": "GetReminder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reminder identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single Reminder instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Reminder"
                }
              }
            }
          },
          "404": {
            "description": "No Reminder was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/reminder": {
      "get": {
        "tags": [
          "Invoice"
        ],
        "summary": "Get reminders matching a given query filter.",
        "operationId": "GetReminders",
        "parameters": [
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Gets or sets the end date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Gets or sets the start date.",
            "schema": {
              "type": "string",
              "format": "date-time",
              "deprecated": true
            }
          },
          {
            "name": "ReminderNumber",
            "in": "query",
            "description": "Gets or sets the reminder number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Filters on the subscriber Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MinimumIssuedOn",
            "in": "query",
            "description": "The minimum date that the Issued time should be within range of. For Reminder this is the ReminderDate.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumIssuedOn",
            "in": "query",
            "description": "The max date that the Issued time should be within range of.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ExternalInvoiceIdentifier",
            "in": "query",
            "description": "Filters on the external identifier, uses exact matching. For Reminders this refers to the original Invoice.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceNumber",
            "in": "query",
            "description": "Filters on the invoice number. For credit notes and reminders this refers to the Original Invoice Number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Filters by OrganizationId if set. If not set all organizations are considered.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TrackingId",
            "in": "query",
            "description": "Filters on the external tracking Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BuyerReference",
            "in": "query",
            "description": "Gets or sets the buyer reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderReference",
            "in": "query",
            "description": "Gets or sets the order reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Reminder"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/{id}/credit": {
      "post": {
        "tags": [
          "Invoice"
        ],
        "summary": "Issue credit note.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The issue credit note.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueCreditNote"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/gdpr/invoice": {
      "delete": {
        "tags": [
          "Invoice"
        ],
        "summary": "Deletes the subscribers asynchronous by GDPR reason.",
        "parameters": [
          {
            "name": "subscriberId",
            "in": "query",
            "description": "The subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/configuration/sequence": {
      "post": {
        "tags": [
          "InvoiceConfiguration"
        ],
        "summary": "Initialize the invoice number sequence.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceSequenceNumberConfiguration"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/configuration/sequence/{organizationId}": {
      "get": {
        "tags": [
          "InvoiceConfiguration"
        ],
        "summary": "Gets the current number asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The organization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceexport/configuration": {
      "post": {
        "tags": [
          "InvoiceExport"
        ],
        "summary": "Creates the configuration.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceExportConfigurationCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceexport/configuration/{organizationId}/{provider}": {
      "get": {
        "tags": [
          "InvoiceExport"
        ],
        "summary": "Gets the configuration.",
        "operationId": "GetInvoiceExportConfiguration",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider",
            "in": "path",
            "description": "The provider.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/InvoiceExportProviders"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Configuration"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceexport/{organizationId}": {
      "post": {
        "tags": [
          "InvoiceExport"
        ],
        "summary": "Creates the file.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvoiceExportFileCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceexport/file/{id}/{provider}": {
      "get": {
        "tags": [
          "InvoiceExport"
        ],
        "summary": "Gets the previously exported file.",
        "operationId": "GetFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider",
            "in": "path",
            "description": "The provider.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/InvoiceExportProviders"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceexport/{organizationId}/{invoiceId}/{provider}": {
      "post": {
        "tags": [
          "InvoiceExport"
        ],
        "summary": "Re-creates an invoice export entry asynchronous.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "The identifier of the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "invoiceId",
            "in": "path",
            "description": "The identifier of the invoice.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "provider",
            "in": "path",
            "description": "The provider.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/InvoiceExportProviders"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/{id}/file": {
      "post": {
        "tags": [
          "InvoiceFile"
        ],
        "summary": "Upload a invoice file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "the invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "File",
                  "Type"
                ],
                "type": "object",
                "properties": {
                  "Type": {
                    "type": "string",
                    "description": "Gets or sets the type."
                  },
                  "File": {
                    "type": "string",
                    "description": "Gets or sets the file.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "Type": {
                  "style": "form"
                },
                "File": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "InvoiceFile"
        ],
        "summary": "Get the invoice files.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InvoiceFileView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoice/{id}/file/{type}": {
      "get": {
        "tags": [
          "InvoiceFile"
        ],
        "summary": "Get the invoice file.",
        "operationId": "GetInvoiceFileAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The invoice file type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "InvoiceFile"
        ],
        "summary": "Delete the invoice file.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The invoice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The invoice file  type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceidentifier/configuration/organization": {
      "post": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Creates a new Identifier configuration for the organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The organization configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationConfigurationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Get all Identifier Configurations for Organizations.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentifierOrganizationConfiguration"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceidentifier/configuration/organization/{id}": {
      "put": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Updates the organization configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The organization configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationConfigurationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Deletes the organization configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted the configuration."
          },
          "404": {
            "description": "The Given configuration was not found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Get the Identifier Configuration for the Organization.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdentifierOrganizationConfiguration"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceidentifier/configuration/provider": {
      "post": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Creates an Identifier configuration for the given provider.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The provider configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProviderConfigurationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Gets all provider configurations.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentifierProviderConfiguration"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/invoiceidentifier/configuration/provider/{id}": {
      "delete": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Deletes the provider configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted the configuration."
          },
          "404": {
            "description": "The Given configuration was not found."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "InvoiceIdentifier"
        ],
        "summary": "Get an identifier provider configuration instance.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentifierProviderConfiguration"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/ledger/balance": {
      "post": {
        "tags": [
          "Ledger"
        ],
        "summary": "Adds a balance subscriber ledger.",
        "description": "Creates a new balance-type ledger for a subscriber.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The subscriber ledger details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberLedgerBalanceCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the subscriberledger was added. The response body includes the created <a href=\"#model-SubscriberLedgerView\">SubscriberLedgerView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberLedgerView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/ledger/{id}": {
      "get": {
        "tags": [
          "Ledger"
        ],
        "summary": "Get a ledger.",
        "description": "Gets a specific ledger based on its Id.",
        "operationId": "GetLedger",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ledger identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-LedgerView\">LedgerView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberLedgerView"
                }
              }
            }
          },
          "404": {
            "description": "No ledger was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/ledger": {
      "get": {
        "tags": [
          "Ledger"
        ],
        "summary": "Gets all the ledgers.",
        "parameters": [
          {
            "name": "SubscriberAccount",
            "in": "query",
            "description": "Gets or sets the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-LedgerView\">LedgerView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberLedgerView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/account": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Configures a VippsMobilePay Merchant account.",
        "operationId": "CreateVippsMobilePayAccounts",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VippsAccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the account was created. The response body includes the guid that identifies the newly created account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get filtered collection of accounts.",
        "operationId": "GetVippsMobilePayAccounts",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "The Account Id. Might as well use the direct get API for this.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ClientId",
            "in": "query",
            "description": "The client id.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "The organizaiton id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "UseTestEnvironment",
            "in": "query",
            "description": "Use to filter for accounts that uses custom the test environment (or not).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "UseCustomAPICredentials",
            "in": "query",
            "description": "Use to filter for accounts that uses custom API credentials (or not).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collections of <a href=\"#model-VippsAccount\">VippsAccounts</a>.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/account/{id}": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get an existing VippsMobilePay account configuration.",
        "operationId": "GetVippsMobilePayAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-VippsAccount\">VippsAccount</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No account was found with the given id."
          }
        }
      },
      "delete": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Deletes the account configuration.",
        "operationId": "DeleteVippsMobilePayAccounts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the account.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "The account has been deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No account was found with the given Id."
          }
        }
      },
      "put": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Updates an existing Vipps/MobilePay account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The updated properties of the account.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Api.AccountUpdate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Error"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    },
    "/vippsmobilepay/agreement": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Starts the process to create a new VippsMobilePay agreement.",
        "description": "This will create a new Draft Agreement which can later be confirmed once the user has been redirected to the Confirmation page and accepted the agreement in the App.",
        "operationId": "CreateVippsMobilePayAgreement",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters which will used to create the vipps agreement.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Api.AgreementCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The request has been accepted and will be processed as soon as possible, the body contains a string with the AgreementId that is going to be created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        }
      },
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Gets a collection of agreements that matches the given filter, or the empty collection if no criteria is satisfied.",
        "parameters": [
          {
            "name": "AgreementId",
            "in": "query",
            "description": "VippsChargeId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "VippsAgreementId",
            "in": "query",
            "description": "The AgreementReference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AccountId",
            "in": "query",
            "description": "The VippsConfirmationUrl.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of agreements that matches the query criteria or an empty collection if nothing is matched.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Agreement"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/agreement/{id}/confirm": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Confirm/Complete the agreement after it has been confirmed/accepted by the user.",
        "description": "This is required to finalize the agreement and verify the status before utilizing it for future subscription payments.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement as provided by CreateAgreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "201": {
            "description": "The agreement was confirmed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        }
      }
    },
    "/vippsmobilepay/agreement/{id}/update": {
      "patch": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Update the agreement with new information such as the Product Name or the recurring price.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement that owns vipps agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The information to update, all properties are replaced with their new values.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgreementUpdate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The agreement was updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        }
      }
    },
    "/vippsmobilepay/agreement/{id}": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Gets an agreement by the identifier.",
        "operationId": "GetVippsMobilePayAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "An agreement for Vipps or Mobile Pay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agreement"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No agreement was found with the given id."
          }
        }
      },
      "delete": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Cancel the Vipps agreement for both INFO-Subscription and in the app. The action is irreversible.",
        "description": "Remember to deactivate the related PaymentAgreement abstraction used by any subscriptions to avoid billing issues.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement to cancel.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Cancellation was accepted for processing.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/agreement/import": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Imports an existing Agreement into the system. It must be an existing agreement as the details are obtained directly from VippsMobilePay.",
        "description": "Use this for migration scenarios where the agreement is generated in a different system,\nor when you want to create the Vipps Agreement with an external process instead of the processed defined by INFO-Subscription. \n\nTypically when you have multiple systems that needs the same agreement, or for parameters not suppored by INFO-Subscription are required.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The agreement to import.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportAgreement"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The agreement has been accepted for importing and will be processed as time permits."
          }
        }
      }
    },
    "/vippsmobilepay/agreement/{id}/remote": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Gets the Agreement details directly from VippsMobile, based on the INFO-Subscription AgreementId.",
        "description": "This basically acts as a wrapper for the Vipps Recurring API, querying for their version of\nthe Agreement without regards to the INFO-Subscription states.",
        "operationId": "GetRemoteVippsMobilePayAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A direct representation of the Vipps Agreement as returned by the Vipps Recurring API."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No agreement was found with the given id."
          },
          "503": {
            "description": "The upstream Vipps Service is unavailable, please try again later."
          }
        }
      }
    },
    "/vippsmobilepay/agreement/{id}/userinfo": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Gets user profile information based on the created Agreement.",
        "description": "This method only returns information in case the Vipps/MobilePay Agreement was created with a request for profile data sharing using the ProfileScope.",
        "operationId": "GetUserInfo",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "200": {
            "description": "A set of user information as it exists in Vipps/MobilePay currently.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserInfo"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/charge/{id}": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get a VippsMobilePay charge based on the Id.",
        "operationId": "GetVippsMobilePayCharge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The charge identifier returned when creating the charge.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-charge\">charge</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Charge"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No charge was found with the given id."
          }
        }
      }
    },
    "/vippsmobilepay/charge": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get filtered charges.",
        "parameters": [
          {
            "name": "ChargeId",
            "in": "query",
            "description": "VippsChargeId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AgreementId",
            "in": "query",
            "description": "The agreement id for corresponding charge.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "VippsChargeId",
            "in": "query",
            "description": "The Vipps charge id.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VippsAgreementId",
            "in": "query",
            "description": "The agreement id for corresponding charge.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ChargeStatus",
            "in": "query",
            "description": "The status for charge.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "The Order VippsChargeId.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-charge\">charge</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Charge"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/charge/{id}/remote": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "The API calls upstream vipps service and gets the real time status of vipps charge based on chagreId.",
        "operationId": "GetVippsMobilePayRemoteCharge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The charge identifier which will be used to uniquely identify the charge.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-charge\">charge</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteCharge"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No charge was found with the given id."
          }
        }
      }
    },
    "/vippsmobilepay/charge/{id}/refund": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Refund an already cpatured charge. Only one refund per charge is supported, regardless of the supplied amount.",
        "operationId": "Refund",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The charge identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The refund input.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundCharge"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The charge has been refuned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "No charge found which corresponds to given id."
          },
          "202": {
            "description": "The refund will be processed shortly."
          },
          "default": {
            "description": "Error"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    },
    "/vippsmobilepay/epayment/{id}/cancel": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Cancels a previously created payment.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/epayment/{id}/capture": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Attempts to capture the previously created payment, call this when the goods have been shipped/delivered/handed over.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/epayment": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Create/Initialize a new EPayment request with VippsMobilePay, allowing the user to approve it in the app.",
        "operationId": "CreatePayment",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input parameters to create the new payment.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEPayment"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EPayment"
                }
              }
            }
          },
          "default": {
            "description": "Error"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      },
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get a filtered list of payments.",
        "operationId": "GetFilteredEPayment",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "Filters on the AccountId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EPayment"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/epayment/{id}": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get the specified payment.",
        "operationId": "GetEPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EPayment"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/epayment/{id}/remote": {
      "get": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Get the specified payment state at VippsMobilePay.",
        "operationId": "GetRemoteEPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EPaymentResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vippsmobilepay/epayment/{id}/refund": {
      "post": {
        "tags": [
          "MobilePay",
          "Vipps"
        ],
        "summary": "Refunds a previously created and captured payment.",
        "operationId": "RefundEPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/account": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Creates a new Mollie account, required to process payments using the Mollie PSP.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account creation details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.CreateAccountRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted, the account creation was forwarded to MollieService."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a filtered list of Mollie accounts. Defaults to listing active accounts only.",
        "parameters": [
          {
            "name": "IsActive",
            "in": "query",
            "description": "filter by active status. Defaults to true (active accounts only).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of accounts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.AccountResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/account/{id}": {
      "put": {
        "tags": [
          "Mollie"
        ],
        "summary": "Updates the mutable fields of an existing Mollie account. Note that not all fields may be modified this way.",
        "description": "To update/create a Refresh Token use the Connect endpoints.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The update details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.UpdateAccountRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The account update was forwarded to MollieService."
          },
          "404": {
            "description": "No account was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Mollie"
        ],
        "summary": "Deletes a Mollie account.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "The account deletion was forwarded to MollieService."
          },
          "404": {
            "description": "No account was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a specific Mollie account by its ID.",
        "operationId": "GetMollieAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.AccountResponse"
                }
              }
            }
          },
          "404": {
            "description": "No account was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/account/{id}/connect": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Starts the Mollie Connect authorization flow for an account, step 1 of generating/updating a refresh token.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "state",
            "in": "query",
            "description": "The caller-supplied anti-forgery state value to embed in the authorization URL. We recommend you use it, but if not, supply a random value.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "Authorization URL and generated state.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartAccountConnectResponse"
                }
              }
            }
          },
          "400": {
            "description": "Account not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/account/{id}/connect/token": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Completes Mollie Connect by exchanging an authorization code and storing the refresh token, step 2 of generating/updating a refresh token.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The authorization code payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteAccountConnectTokenRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The token exchange was forwarded to MollieService."
          },
          "400": {
            "description": "Account, authorization code, or token response invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/customer": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Ensures a Mollie customer exists for the given subscriber (idempotent).",
        "description": "If a customer for `(AccountId, SubscriberId)` already exists, the existing\nplatform `CustomerId` is returned in the `Location` header without creating a\nduplicate Mollie customer.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The customer creation details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted, the customer creation was forwarded to MollieService."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a filtered list of Mollie customers.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "filter by Mollie account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "filter by platform subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of customers.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/customer/{id}": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a specific Mollie customer by its ID.",
        "operationId": "GetMollieCustomer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The customer identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The customer.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerResponse"
                }
              }
            }
          },
          "404": {
            "description": "No customer was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Starts mandate registration for a subscriber with an initial payment.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The mandate registration details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartMandateRegistrationRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted. The response body contains the checkout URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StartMandateRegistrationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a filtered list of Mollie mandates.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "filter by Mollie account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "filter by platform subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "filter by mandate lifecycle status.",
            "schema": {
              "$ref": "#/components/schemas/MandateStatus"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of mandates.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MandateResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate/{id}": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a specific Mollie mandate by its ID.",
        "operationId": "GetMollieMandate",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The mandate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateResponse"
                }
              }
            }
          },
          "404": {
            "description": "No mandate was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Mollie"
        ],
        "summary": "Soft-deactivates a mandate (local only; no remote Mollie API call). \nThe mandate remains but is no longer usable for recurring charges.",
        "description": "Use this if you wish to keep the the Mandate on the Mollie side, but need to prevent further local charges.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted. The mandate will be deactivated."
          },
          "404": {
            "description": "Mandate not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Mandate is not in a deactivatable state.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate/{id}/remote": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets the live Mollie mandate state directly from the Mollie API, bypassing the local state.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The remote mandate state.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteMandateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No mandate was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate/{id}/payment": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Performs a recurring on-demand charge against an active mandate.",
        "description": "The request's `MandateId` identifies the target mandate; the ApiClient\n            forwards this action to MollieService's `Mandate/{id}/payment` route.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The recurring payment details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PerformMandatePaymentRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Payment accepted for processing.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PerformMandatePaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error or prerequisite not met (e.g. mandate not active).",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Mandate not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate/{id}/revoke": {
      "delete": {
        "tags": [
          "Mollie"
        ],
        "summary": "Revokes a mandate via the Mollie API (irreversible).\nThe mandate is cancelled at Mollie and no further charges are possible.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted. The mandate will be revoked."
          },
          "404": {
            "description": "Mandate not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Mandate is not in a revocable state.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/mandate/{id}/complete": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Completes mandate registration when the first payment is approved.\nUse this endpoint to finalize the mandate.\nThe handler fetches the current mandate status from Mollie and transitions to Active if valid.",
        "description": "The mandate can also be completed automatically via webhooks/events sent by the Mollie platform.\nSo NOT calling this endpoint does not prevent the registration from completing.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The mandate identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The Mollie mandate identifier and optional card details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmMandateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted. Mandate completion will be processed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MandateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error or prerequisite not met.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Mandate not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Creates a one-off hosted-checkout payment (`sequenceType:oneoff`) that does not require a mandate.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The one-off payment details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOneOffPaymentRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted. The response body contains the checkout URL.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOneOffPaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a filtered list of Mollie payments.",
        "parameters": [
          {
            "name": "AccountId",
            "in": "query",
            "description": "filter by Mollie account identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MandateId",
            "in": "query",
            "description": "filter by platform mandate identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "filter by payment lifecycle status.",
            "schema": {
              "$ref": "#/components/schemas/PaymentStatus"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of payments.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.PaymentResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment/{id}/capture": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Captures a previously authorized payment (e.g. first-invoice card authorization).",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The platform payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted for processing."
          },
          "404": {
            "description": "Payment not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment/{id}/cancel": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Cancels a payment that is still open or authorized (Mollie's `DELETE /payments/{id}` equivalent).\nCancelling a payment is transaction-scoped only — the underlying mandate, if any, is left untouched.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The platform payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "The updated payment.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.PaymentResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment/{id}/refund": {
      "post": {
        "tags": [
          "Mollie"
        ],
        "summary": "Refunds an existing payment.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The refund details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefundPaymentRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The refund response payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefundPaymentResponse"
                }
              }
            }
          },
          "404": {
            "description": "Payment not found.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment/{id}": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets a specific Mollie payment by its Id.",
        "operationId": "GetMolliePayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The payment.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Api.PaymentResponse"
                }
              }
            }
          },
          "404": {
            "description": "No payment was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/mollie/payment/{id}/remote": {
      "get": {
        "tags": [
          "Mollie"
        ],
        "summary": "Gets the live Mollie payment state directly from the Mollie API, bypassing the local state.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The platform payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The remote payment state.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemotePaymentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Validation error.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No payment was found with the given id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/order": {
      "post": {
        "tags": [
          "Order"
        ],
        "summary": "Create a new order.",
        "description": "\nCreates a new order.\n\nOrders creates new subscriptions, payment agreements and any other initial actions such as\n            invoices and card payments. \n Adding a new order will not immediately process it, rather\n            it will validate the given input, and make it availble for further adaptation such as adding\n            card processing or other features.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters for the order, such as which package, selected products and how to pay.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the order was added, the response includes an <a href=\"#model-OrderView\">OrderView</a> with some details about how the order looks.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Order.OrderView"
                }
              }
            }
          },
          "503": {
            "description": "Typically returned when a dependant service is not available, or the order did not\ncomplete processing in due time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Order"
        ],
        "summary": "Get all orders.",
        "description": "Get all orders regardless of their state.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrderView\">OrderView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Order.OrderView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/order/{id}": {
      "delete": {
        "tags": [
          "Order"
        ],
        "summary": "Cancel a prepared order.",
        "description": "\nThis will cancel an order that is not yet completed/processed.\n\nTypically there is no need to explicitly cancel an order, but it helps to have the system in\n            a clean state with regards to reporting and followup of orders.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the order to cancel.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Indicates the cancellation has been received and will be processed as soon as possible."
          },
          "404": {
            "description": "No order was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Order"
        ],
        "summary": "Gets an Order.",
        "operationId": "FromOrderGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the Order to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-OrderView\">OrderView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Order.OrderView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/order/{id}/complete": {
      "post": {
        "tags": [
          "Order"
        ],
        "summary": "Complete order and process it.",
        "description": "\nStart processing the order with the parameters that are currently registered on it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the order to complete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Optional options for controling the completion process.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrderCompletionProcessOptions"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The order was processed the response includes details about what was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrderView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization": {
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Creates a new organization.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new organization parameters in form of a\n<a href=\"#model-OrganizationCreate\">OrganizationCreate</a> instance.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationCreate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "An Organization Id and a Location header.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get all organizations.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrganizationView\">OrganizationView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganizationView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{id}": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get an Organization.",
        "description": "Gets a specific organization based on its Id.",
        "operationId": "GetOrganization",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The organization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-OrganizationView\">OrganizationView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationView"
                }
              }
            }
          },
          "404": {
            "description": "No organization was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Organization"
        ],
        "summary": "Update the organization.",
        "description": "Updates the organization with new parameters, note that all fields are updated with the given\nvalues.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Organization identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new organization parameters in form of a\n<a href=\"#model-OrganizationCreate\">OrganizationCreate</a> instance.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationCreate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The organization was updated."
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{id}/logo": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Get URL to Organization Logo.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "Success, body is an URL to.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Logo"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/organization/{id}/contact": {
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Creates organization contact.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The contact.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationContact"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Organization"
        ],
        "summary": "Deletes the organization contact.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Gets organization contact asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationContact"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/organization/{id}/settings": {
      "post": {
        "tags": [
          "Organization"
        ],
        "summary": "Creates organization setting.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The setting.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationSetting"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Gets organization settings asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationSetting"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/organization/{id}/settings/{name}": {
      "delete": {
        "tags": [
          "Organization"
        ],
        "summary": "Deletes the organization setting.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "name",
            "in": "path",
            "description": "The name.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/organization/{id}": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Gets organization asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/organization": {
      "get": {
        "tags": [
          "Organization"
        ],
        "summary": "Gets organizations asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/package": {
      "post": {
        "tags": [
          "Package"
        ],
        "summary": "Creates a new package.",
        "description": "Creates a new package for use in orders.\n\nIf no BillingFrequencies are specified, the default is 30 Days.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The package parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatePackageCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the package was created. The response body includes the created <a href=\"#model-TemplatePackageView\">TemplatePackageView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatePackageView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Package"
        ],
        "summary": "Get all packages.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingPlanId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Disabled",
            "in": "query",
            "description": "Gets or sets the disabled.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "InitialTermType",
            "in": "query",
            "description": "Gets or sets the type of the initial term.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Price",
            "in": "query",
            "description": "Gets or sets the price.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Gets or sets the identifier of the product.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationIdNull",
            "in": "query",
            "description": "Gets or sets a value indicating whether the organization identifier null.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrganizationIdOrNull",
            "in": "query",
            "description": "Gets or sets the organization identifier or null.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-TemplatePackageView\">TemplatePackageView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TemplatePackageView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/package/{id}": {
      "delete": {
        "tags": [
          "Package"
        ],
        "summary": "Deletes a package.",
        "description": "Deletes the package with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The package Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No package was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The package has been deleted."
          }
        }
      },
      "get": {
        "tags": [
          "Package"
        ],
        "summary": "Get a package.",
        "description": "Gets a specific package based on its Id.",
        "operationId": "GetTemplatePackage",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The package Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-TemplatePackageView\">TemplatePackageView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplatePackageView"
                }
              }
            }
          },
          "404": {
            "description": "No Package was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Package"
        ],
        "summary": "Update the package.",
        "description": "Updates the package with new parameters, note that all fields are updated with the given\nvalues.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Package Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new package parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatePackageUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No package was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The package was updated."
          }
        }
      }
    },
    "/package/{id}/validate": {
      "post": {
        "tags": [
          "Package"
        ],
        "summary": "Validate package choices.",
        "description": "\nVerify a set of choices against the package. If the choices are valid a package draft will be\n            returned which can be used in the order flow for instance.\n\nIf the choices are invalid, a BadRequest  will be returned with validation errors in the body.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The package identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The choices.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TemplatePackageChoices"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Choices validated, the response body contains an <a href=\"#model-PackageDraft\">PackageDraft</a>instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageDraft"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No package was found with the given Id."
          }
        }
      }
    },
    "/packagechain": {
      "post": {
        "tags": [
          "PackageChain"
        ],
        "summary": "Create a new chain.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters for the chain.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PackageChainCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Chain created, the response includes the <a href=\"#model-PackageChainView\">PackageChainView</a> instance that was created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageChainView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PackageChain"
        ],
        "summary": "Get all chains.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PackageChainView\">PackageChainView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PackageChainView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/packagechain/{id}": {
      "delete": {
        "tags": [
          "PackageChain"
        ],
        "summary": "Deletes a chain.",
        "description": "Deletes the Chain with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The chain Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The chain has been deleted."
          },
          "404": {
            "description": "No chain was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PackageChain"
        ],
        "summary": "Get a chain.",
        "description": "Gets a specific chain based on its Id.",
        "operationId": "GetPackageChain",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The chain identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PackageChainView\">PackageChainView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageChainView"
                }
              }
            }
          },
          "404": {
            "description": "No chain was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "PackageChain"
        ],
        "summary": "Update the chain.",
        "description": "Updates the chain with new parameters, note that all fields are updated with the given values.\n\nEach of the steps are also updated/removed/added accordingly.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters for the chain.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PackageChainUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The chain was updated."
          },
          "404": {
            "description": "No chain was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/packagerule": {
      "get": {
        "tags": [
          "PackageRule"
        ],
        "summary": "Get all package rules.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PackageRule\">PackageRule</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PackageRule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/packagerule/{id}": {
      "get": {
        "tags": [
          "PackageRule"
        ],
        "summary": "Get a package rule.",
        "description": "Gets a specific rule based on its Id.",
        "operationId": "GetPackageRule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The packagerule Id.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PackageRule\">PackageRule</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PackageRule"
                }
              }
            }
          },
          "404": {
            "description": "No rule was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/payment": {
      "post": {
        "tags": [
          "Payment"
        ],
        "summary": "Adds a new payment.",
        "description": "Creates a new payment for a subscriber.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The payment details.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CreatePayment"
                  },
                  {
                    "$ref": "#/components/schemas/UpdatePayment"
                  }
                ],
                "description": "Data for creating a new payment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success, the payment was added. The response body includes the created <a href=\"#model-PaymentView\">Payment</a> instance."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Payment"
        ],
        "summary": "Get payments with optional filtering.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "If set will be used to filter by the Id - this is equivalent to getting a specific payment. Note settings this will still return a collection of payments but just with one instance.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "If set will be used to filter the Organization of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "If set will be used to filter the Subscriber of the payment. Note some payments may not have a subscriber on them and will not be included.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "State",
            "in": "query",
            "description": "If set will be used to filter on the state of the payment.",
            "schema": {
              "$ref": "#/components/schemas/Infosoft.S4.Payments.Contracts.PaymentState"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PaymentView\">PaymentView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Payment"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/payment/{id}/approve": {
      "post": {
        "tags": [
          "Payment"
        ],
        "summary": "Approves an already identified payment.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the payment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "Success, the payment was accepted for approval."
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/payment/{id}/assignaccount/{subscriberAccountId}": {
      "put": {
        "tags": [
          "Payment"
        ],
        "summary": "Assigns account to the payment.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "subscriberAccountId",
            "in": "path",
            "description": "The subscriber account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "Success, the account was assigned."
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/payment/{id}": {
      "get": {
        "tags": [
          "Payment"
        ],
        "summary": "Get a payment.",
        "description": "Gets a specific payment based on its Id.",
        "operationId": "FromPaymentGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PaymentView\">PaymentView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Payment"
                }
              }
            }
          },
          "404": {
            "description": "No Payment was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Payment"
        ],
        "summary": "Updates an existing payment with new data and attempt to re-match it.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the payment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The payment data to update with.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePayment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Success, the payment was accepted for updating, query the payment again to get any new matching errors.."
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Payment"
        ],
        "summary": "Delete an unmatched payment.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the payment.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/payment/{paymentId}/refund": {
      "post": {
        "tags": [
          "Payment"
        ],
        "summary": "Creates the refund asynchronously.",
        "parameters": [
          {
            "name": "paymentId",
            "in": "path",
            "description": "The payment identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The refund.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRefundFromPayment"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentagreement": {
      "post": {
        "tags": [
          "PaymentAgreement"
        ],
        "summary": "Creates a new payment agreement.",
        "description": "Creates a new payment agreement for a given subscriber.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters of the agreement to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentAgreementCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the agreement was created. The response body includes the created\n<a href=\"#model-PaymentAgreementView\">PaymentAgreementView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentAgreementView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PaymentAgreement"
        ],
        "summary": "Get all payment agreements.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ProviderAgreementReference",
            "in": "query",
            "description": "Gets or sets the provider agreement reference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProviderType",
            "in": "query",
            "description": "Gets or sets the type of the provider.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IncludeDeactivated",
            "in": "query",
            "description": "Gets or sets a value indicating whether deactivated agreements should be included.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ProviderAgreementId",
            "in": "query",
            "description": "Gets or sets the provider agreement's identifier. In general it is mandate identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "CardExpiration",
            "in": "query",
            "description": "Gets or sets the card expiration.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "PaymentMethod",
            "in": "query",
            "description": "Gets or sets the payment method.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PaymentAgreementView\">PaymentAgreementView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentAgreementView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentagreement/{id}": {
      "delete": {
        "tags": [
          "PaymentAgreement"
        ],
        "summary": "Deletes a payment agreement.",
        "description": "Deletes the payment agreement with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment agreement identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "No agreement was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "204": {
            "description": "The agreement has been deleted."
          }
        }
      },
      "get": {
        "tags": [
          "PaymentAgreement"
        ],
        "summary": "Get a payment agreement.",
        "description": "Gets a specific agreement based on its Id.",
        "operationId": "FromPaymentAgreementGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The agreement identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PaymentAgreementView\">PaymentAgreementView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentAgreementView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentimport/upload": {
      "post": {
        "tags": [
          "PaymentImport"
        ],
        "summary": "Uploads a payment file to storage for later processing.",
        "operationId": "UploadPaymentsFile",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Data of a file to upload.",
                    "format": "binary"
                  },
                  "fileFormat": {
                    "$ref": "#/components/schemas/PaymentFileFormat"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                },
                "fileFormat": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The file was uploaded and processing can be started with the given FileId.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentImportFile"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentimport/{id}/process": {
      "post": {
        "tags": [
          "PaymentImport"
        ],
        "summary": "Start import/processing of a previously uploaded file.",
        "description": "Given an non existing file, this will fail. For all other cases it will return a processing summary with various degress of information.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the file previously uploaded.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessingAccepted"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessingAccepted"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "default": {
            "description": "Error"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          }
        }
      }
    },
    "/paymentimport/{id}/state": {
      "get": {
        "tags": [
          "PaymentImport"
        ],
        "summary": "Get the processing state of a previously uploaded file.",
        "operationId": "GetImportState",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the file.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessingAccepted"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentimport/file": {
      "get": {
        "tags": [
          "PaymentImport"
        ],
        "summary": "Get the processing state of previously uploaded files matching the input query.",
        "operationId": "GetImportStates",
        "parameters": [
          {
            "name": "StartTimeAfter",
            "in": "query",
            "description": "If given will filter away items with a start time ealiery than the given time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "FileFormat",
            "in": "query",
            "description": "Filters on files with the given format.",
            "schema": {
              "$ref": "#/components/schemas/PaymentFileFormat"
            }
          },
          {
            "name": "ProcessingState",
            "in": "query",
            "description": "Filters on files with the given state.",
            "schema": {
              "$ref": "#/components/schemas/ProcessingState"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProcessingAccepted"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentstopschedule": {
      "post": {
        "tags": [
          "PaymentStopSchedule"
        ],
        "summary": "Creates a payment stop schedule.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The payment stop schedule to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentStopScheduleCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PaymentStopSchedule"
        ],
        "summary": "Get all payment stop schedules based on query filter.",
        "parameters": [
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Identifier for the payment demand to filter on.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collections of payment stop schedule objects based on filter criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PaymentStopSchedule"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentstopschedule/{id}": {
      "get": {
        "tags": [
          "PaymentStopSchedule"
        ],
        "summary": "Get the payment stop schedule.",
        "operationId": "GetPaymentStopSchedule",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment stop schedule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentStopSchedule"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "PaymentStopSchedule"
        ],
        "summary": "Deletes a payment stop schedule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment stop schedule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No payment stop schedule found to delete."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The payment stop schedule has been deleted."
          }
        }
      }
    },
    "/paymentstopschedule/{id}/reschedule": {
      "post": {
        "tags": [
          "PaymentStopSchedule"
        ],
        "summary": "Reschedule the specified payment stop schedule.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment stop schedule identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reschedule information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentStopReschedule"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The payment stop schedule has been rescheduled."
          },
          "404": {
            "description": "No payment stop schedule found to reschedule."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/permanentdiscount/{id}/activate": {
      "put": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Activates a permanent discount.",
        "description": "Activates the permanent discount with the given identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The PermanentDiscount identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The permanent discount has been activated."
          },
          "404": {
            "description": "No permanent discount was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/permanentdiscount": {
      "post": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Creates a new permanent discount.",
        "description": "This will create a new permanent discount based on given parameters.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters of the permanent discount to create.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/PermanentDiscountCreate"
                  },
                  {
                    "$ref": "#/components/schemas/PermanentDiscountUpdate"
                  }
                ],
                "description": "A permanent discount create."
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the permanent discount was created. The response body includes the created <a href=\"#model-PermanentDiscountView\">PermanentDiscountView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermanentDiscount"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Get filtered permanent permanent discounts.",
        "description": "Unless queryfilter states that deactivated entries must be included, thet will be excluded by default.",
        "parameters": [
          {
            "name": "Percent",
            "in": "query",
            "description": "Gets or sets the percent.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "IncludeDeactivated",
            "in": "query",
            "description": "Gets or sets a value indicating whether the deactivated should be included.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PermanentDiscountView\">PermanentDiscount</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PermanentDiscount"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/permanentdiscount/{id}": {
      "delete": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Deactivates a permanent discount.",
        "description": "Deactivates the permanent discount with the given identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The PermanentDiscount identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The permanent discount has been deactivated."
          },
          "404": {
            "description": "No permanent discount was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Get a permanent discount.",
        "description": "Gets a specific permanent discount based on its identifier.",
        "operationId": "GetPermanentDiscount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The permanent discount identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PermanentDiscountView\">PermanentDiscount</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermanentDiscount"
                }
              }
            }
          },
          "404": {
            "description": "No permanent discount was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "PermanentDiscount"
        ],
        "summary": "Update a permanent discount.",
        "description": "Updates the permanent discount with new parameters, note that all fields are updated with the given\nvalues.\n\nThe PermanentDiscount Id in the URL and the\n<a href=\"#model-CategoryUpdate\">permanentDiscount</a> must be the same Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The permanent discount identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new permanent discount parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermanentDiscountUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The permanent discount was updated."
          },
          "404": {
            "description": "No permanent discount was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/powerbi": {
      "post": {
        "tags": [
          "PowerBI"
        ],
        "summary": "Creates the PowerBI workspace asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "PowerBI"
        ],
        "summary": "Gets a PowerBI workspace identifier.",
        "operationId": "GetPowerBIWorkspace",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/powerbi/reports": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "summary": "Gets a PowerBI reports.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PowerBIReport"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/powerbi/reports/{id}": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "summary": "Gets a PowerBI report details.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The report identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIReportDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/powerbi/embedtoken": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "summary": "Gets a PowerBI embed token.",
        "parameters": [
          {
            "name": "IsEditingAllowed",
            "in": "query",
            "description": "Gets or sets the possibility to edit reports.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "IsCreationAllowed",
            "in": "query",
            "description": "Gets or sets the possibility to create new reports.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PowerBIEmbedToken"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/preliminarydemand/{id}": {
      "get": {
        "tags": [
          "PreliminaryDemand"
        ],
        "summary": "Get a preliminary demand.",
        "description": "\nThis API returns the ppreliminary demand based on the (ID) identifier.",
        "operationId": "GetPreliminaryDemand",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The preliminary demand identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreliminaryDemandView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/preliminarydemand": {
      "get": {
        "tags": [
          "PreliminaryDemand"
        ],
        "summary": "Get filtered preliminary demands.",
        "parameters": [
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberAccount",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PreliminaryDemandView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/pricetype": {
      "get": {
        "tags": [
          "PriceType"
        ],
        "summary": "Get all price types.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-PriceTypeView\">PriceTypeView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PriceTypeView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/pricetype/{id}": {
      "get": {
        "tags": [
          "PriceType"
        ],
        "summary": "Gets a PriceType.",
        "description": "Gets a specific PriceType based on its Id.",
        "operationId": "GetPriceType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the price type.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PriceTypeView\">PriceTypeView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceTypeView"
                }
              }
            }
          },
          "404": {
            "description": "No PriceType was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/account/processed/{id}": {
      "get": {
        "tags": [
          "ProcessedAccountPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the processed account payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessedAccountPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/account/processed": {
      "get": {
        "tags": [
          "ProcessedAccountPaymentRequest"
        ],
        "summary": "Get filtered processed account payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProcessedAccountPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/order/processed/{id}": {
      "get": {
        "tags": [
          "ProcessedOrderPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the processed order payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessedOrderPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/order/processed": {
      "get": {
        "tags": [
          "ProcessedOrderPaymentRequest"
        ],
        "summary": "Get filtered processed order payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProcessedOrderPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/subscription/processed/{id}": {
      "get": {
        "tags": [
          "ProcessedSubscriptionPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the processed subscription payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProcessedSubscriptionPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/subscription/processed": {
      "get": {
        "tags": [
          "ProcessedSubscriptionPaymentRequest"
        ],
        "summary": "Get filtered processed subscription payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProcessedSubscriptionPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Creates a new product.",
        "description": "Creates a new product with default price and tax group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters of the product to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductExtendedCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the product was created. The response body includes the created <a href=\"#model-ProductExtendedView\">ProductExtendedView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductExtendedView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get all products.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PartNo",
            "in": "query",
            "description": "Gets or sets the part no.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ExternalPartNo",
            "in": "query",
            "description": "Gets or sets the external part no.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CategoryId",
            "in": "query",
            "description": "Gets or sets the identifier of the category.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-ProductExtendedView\">ProductExtendedView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductExtendedView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}": {
      "delete": {
        "tags": [
          "Product"
        ],
        "summary": "Deletes a product.",
        "description": "Deletes the product with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The product has been deleted."
          },
          "404": {
            "description": "No product was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get a product.",
        "description": "Gets a specific product based on its Id.",
        "operationId": "FromProductGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-ProductExtendedView\">ProductExtendedView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductExtendedView"
                }
              }
            }
          },
          "404": {
            "description": "No Product was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Product"
        ],
        "summary": "Update the product.",
        "description": "Updates the product with new parameters, note that all fields are updated with the given values.\n            \nThe Product Id in the URL and the <a href=\"#model-ProductView\">product</a> must be the same Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new product parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductUpdate"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The product was updated."
          },
          "404": {
            "description": "No product was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}/taxgroup": {
      "delete": {
        "tags": [
          "Product"
        ],
        "summary": "Deletes tax group for a product.",
        "description": "Deletes tax group for the product with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The tax group for product has been deleted."
          },
          "404": {
            "description": "No product was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}/category": {
      "delete": {
        "tags": [
          "Product"
        ],
        "summary": "Deletes categpry for a product.",
        "description": "Deletes category for the product with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The category for product has been deleted."
          },
          "404": {
            "description": "No product was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}/category/{categoryId}": {
      "put": {
        "tags": [
          "Product"
        ],
        "summary": "Update the product category.",
        "description": "Updates the product category with new value, note that this only updates the category.\n                     If given category identifier is null, existing category-reference will be removed.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "path",
            "description": "The new category identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The product was updated."
          },
          "404": {
            "description": "No product was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}/taxgroup/{taxGroupId}": {
      "put": {
        "tags": [
          "Product"
        ],
        "summary": "Update the tax group.",
        "description": "Updates the tax group with new value, note that this only updates the tax group.\n                     If a tax group already is referencing the product, it will be replaced.\n                     If given tax group identifier is null no new taxgroup will be stored.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "taxGroupId",
            "in": "path",
            "description": "The new category identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The product was updated."
          },
          "404": {
            "description": "No product was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/product/{id}/price": {
      "post": {
        "tags": [
          "ProductPrice"
        ],
        "summary": "Creates a new Price for a Product.",
        "description": "This will add a new default price for a given type/frequency combination.\n\n\nDefault prices are used when packages does not define price overrides.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters for the product price.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPrice"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The Price was created, the response includes an <a href=\"#model-ProductPriceView\">ProductPriceView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductPriceView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "ProductPrice"
        ],
        "summary": "Deletes all productprices for a product.",
        "description": "Deletes all productprices for a product with the given ProductId.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No product was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The prices has been deleted."
          }
        }
      },
      "get": {
        "tags": [
          "ProductPrice"
        ],
        "summary": "Get all productprices for a product.",
        "description": "Gets all productprices for a ProductId.",
        "operationId": "GetProductPrice",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Gets or sets the identifier of the product.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "BillingFrequencyId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing frequency.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "NumberOfEditions",
            "in": "query",
            "description": "Gets or sets the number of editions.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-ProductPriceView\">ProductPriceView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductPriceView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No ProductPrice was found with the given id."
          }
        }
      }
    },
    "/product/{id}/price/{productPriceId}": {
      "delete": {
        "tags": [
          "ProductPrice"
        ],
        "summary": "Deletes a product price.",
        "description": "Deletes a product price with the given Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productPriceId",
            "in": "path",
            "description": "The productprice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No price was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The price has been deleted."
          }
        }
      },
      "put": {
        "tags": [
          "ProductPrice"
        ],
        "summary": "Update the product price.",
        "description": "Updates the product price with new parameters, note that all fields are updated with the\ngiven values.\n\nThe ProductPrice Id in the URL and the\n<a href=\"#model-ProductPriceView\">productPrice</a> must have the same Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productPriceId",
            "in": "path",
            "description": "The ProductPrice identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new product price parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPrice"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The price was updated."
          },
          "404": {
            "description": "No product price was found to update."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/producttaxgroup": {
      "post": {
        "tags": [
          "ProductTaxGroup"
        ],
        "summary": "Associate product with a tax group.",
        "description": "## Note: This method WILL change during the beta phase - most likely to be based on a\ncollection on the Product object. This will add the product to a given tax group, which is\nneeded when calculating taxes.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The product and taxgroups to associate.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductTaxGroupCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The association was created, the response includes an <a href=\"#model-ProductTaxGroupView\">ProductTaxGroupView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductTaxGroupView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ProductTaxGroup"
        ],
        "summary": "Get all product tax groups.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-ProductPriceView\">ProductTaxGroupView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductTaxGroupView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/producttaxgroup/{id}": {
      "delete": {
        "tags": [
          "ProductTaxGroup"
        ],
        "summary": "Deletes a tax group associate.",
        "description": "Deletes a tax group associate the given ProductTaxGroup Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ProductTaxGroup identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No ProductTaxGroup was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The ProductTaxGroup has been deleted."
          }
        }
      },
      "get": {
        "tags": [
          "ProductTaxGroup"
        ],
        "summary": "Get a ProductTaxGroup.",
        "description": "Gets a specific product tax group association based on its Id.",
        "operationId": "GetProductTaxGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The price identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-ProductTaxGroupView\">ProductTaxGroupView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductTaxGroupView"
                }
              }
            }
          },
          "404": {
            "description": "No Product Tax Group was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/prorationpolicy": {
      "post": {
        "tags": [
          "ProrationPolicy"
        ],
        "summary": "Creates a new proration policy with the given details.",
        "operationId": "CreateProrationPolicy",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The policy to create. Remember to define an Id.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProrationPolicy"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ProrationPolicy"
        ],
        "summary": "Gets all configured proration policies.",
        "operationId": "GetProrationPolicies",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProrationPolicy"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/billing/prorationpolicy/{id}": {
      "delete": {
        "tags": [
          "ProrationPolicy"
        ],
        "summary": "Deletes the specified proration policy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ProrationPolicy"
        ],
        "summary": "Get a specific proration policy by its Identifier.",
        "operationId": "GetProrationPolicyById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProrationPolicy"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "ProrationPolicy"
        ],
        "summary": "Updates the given policy with new properties..",
        "operationId": "UpdateProrationPolicy",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the policy to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The policy.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProrationPolicy"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProrationPolicy"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/refund": {
      "post": {
        "tags": [
          "Refund"
        ],
        "summary": "Adds a new refund.",
        "description": "Creates a new refund for a subscriber.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The refund details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRefund"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Success, the refund accepted for creation and will be processed shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Refund"
        ],
        "summary": "Gets refunds as specified by the query filter.\nAt least one filter parameter have to be set.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberAccountId",
            "in": "query",
            "description": "The identifier of the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "LedgerId",
            "in": "query",
            "description": "Gets or sets identifier of the ledger.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets  identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ExternalReference",
            "in": "query",
            "description": "Gets or sets external reference identifier.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Refund"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/refund/{id}": {
      "get": {
        "tags": [
          "Refund"
        ],
        "summary": "Get a refund.",
        "description": "Gets a specific refund based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The refund identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-RefundView\">RefundView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Refund"
                }
              }
            }
          },
          "404": {
            "description": "No Refund was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/reportinggroup": {
      "post": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Adds a new reporting group.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reporting group.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ReportingGroup"
                  },
                  {
                    "$ref": "#/components/schemas/ReportingGroupView"
                  }
                ],
                "description": "A reporting group create."
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The reporting group was created, the response body contains a <a href=\"#model-ReportingGroupView\">ReportingGroupView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Get filtered reporting groups.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Gets or sets the type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ReportingGroupView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/reportinggroup/{id}/permanentdiscount/{permanentDiscountId}": {
      "post": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Adds a permanent discount reporting group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "permanentDiscountId",
            "in": "path",
            "description": "Identifier for the permanent discount.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Deletes the permanent discount reporting group asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "permanentDiscountId",
            "in": "path",
            "description": "The permanent discount identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/reportinggroup/{id}/product/{productId}": {
      "post": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Adds a product to a reporting group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group idetntifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The product identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Deletes a product reporting group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The product idetntifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/reportinggroup/{id}": {
      "delete": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Deletes a reporting group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Get the reporting group.",
        "operationId": "GetReportingGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReportingGroupView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "ReportingGroup"
        ],
        "summary": "Updates a reporting plan.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The reporting group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The reporting group.",
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ReportingGroup"
                  },
                  {
                    "$ref": "#/components/schemas/ReportingGroupView"
                  }
                ],
                "description": "A reporting group create."
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/account/scheduled/{id}": {
      "get": {
        "tags": [
          "ScheduledAccountPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the scheduled account payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledAccountPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/account/scheduled": {
      "get": {
        "tags": [
          "ScheduledAccountPaymentRequest"
        ],
        "summary": "Get filtered scheduled account payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledAccountPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{subscriberId}/contact/scheduledchange": {
      "post": {
        "tags": [
          "ScheduledContactChange"
        ],
        "summary": "Create a new scheduled contact change.",
        "description": "Creates a new scheduled contact change.",
        "operationId": "CreateScheduledContactChange",
        "parameters": [
          {
            "name": "subscriberId",
            "in": "path",
            "description": "The identifier of the subscriber.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the contact that should be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlannedSubscriberContactCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the scheduled contact change was created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/contact/scheduledchange/{id}": {
      "delete": {
        "tags": [
          "ScheduledContactChange"
        ],
        "summary": "Delete a scheduled contact change.",
        "description": "Delete a specificscheduled contact change based on its Id.",
        "operationId": "DeleteScheduledContactChange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The scheduled contact change Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": "No scheduled contact change was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "ScheduledContactChange"
        ],
        "summary": "Get a scheduled contact change.",
        "description": "Gets a specific scheduled contact change based on its Id.",
        "operationId": "GetScheduledContactChange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The scheduled contact change Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-PlannedSubscriberContactView\">PlannedSubscriberContactView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlannedSubscriberContactView"
                }
              }
            }
          },
          "404": {
            "description": "No scheduled contact change was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "ScheduledContactChange"
        ],
        "summary": "Update a scheduled contact change.",
        "description": "Update a specific scheduled contact change based on its Id.",
        "operationId": "UpdateScheduledContactChange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The scheduled contact change Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the scheduled contact change that should be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlannedSubscriberContactUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "No scheduled contact change was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "204": {
            "description": ""
          }
        }
      }
    },
    "/subscriber/contact/scheduledchange": {
      "get": {
        "tags": [
          "ScheduledContactChange"
        ],
        "summary": "Get scheduled contact changes.",
        "description": "Gets scheduled contact changes based on a query filter.",
        "operationId": "FilteredScheduledContactChanges",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IsProcessed",
            "in": "query",
            "description": "Gets or sets the subscriber identifier",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrderView\">PlannedSubscriberContactView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlannedSubscriberContactView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/order/scheduled/{id}": {
      "get": {
        "tags": [
          "ScheduledOrderPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the scheduled order payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledOrderPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/order/scheduled": {
      "get": {
        "tags": [
          "ScheduledOrderPaymentRequest"
        ],
        "summary": "Get filtered scheduled order payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledOrderPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/subscription/scheduled/{id}": {
      "get": {
        "tags": [
          "ScheduledSubscriptionPaymentRequest"
        ],
        "summary": "Get the payment request.",
        "description": "\nThis API returns the scheduled subscription payment request based on the (ID) identifier.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The payment request identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledSubscriptionPaymentRequestView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/paymentrequests/subscription/scheduled": {
      "get": {
        "tags": [
          "ScheduledSubscriptionPaymentRequest"
        ],
        "summary": "Get filtered scheduled subscription payment requests.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the billing plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Get or set the subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentDemandId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment demand.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentId",
            "in": "query",
            "description": "Gets or sets the identifier of the payment.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the identifier of order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransactionId",
            "in": "query",
            "description": "Gets or sets the identifier of transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "description": "Gets or sets the currency.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "InvoiceId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PaymentProviderType",
            "in": "query",
            "description": "Gets or sets the identifier of the payment provider type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RemoteProcessingFailed",
            "in": "query",
            "description": "Determines if remote provider processing failed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledSubscriptionPaymentRequestView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/search/street": {
      "get": {
        "tags": [
          "SearchFunctionality"
        ],
        "summary": "The wrapper for the DI API that gets streets.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Get or set the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StreetName",
            "in": "query",
            "description": "Get or set the street name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "City",
            "in": "query",
            "description": "Get or set the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Referer",
            "in": "query",
            "description": "Get or set the referer URL.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Street"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/search/streetnumbers": {
      "get": {
        "tags": [
          "SearchFunctionality"
        ],
        "summary": "The wrapper for the DI API that gets street numbers for provided street.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Get or set the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StreetIds",
            "in": "query",
            "description": "Get or set the street identifiers.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Referer",
            "in": "query",
            "description": "Get or set the referer URL.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/StreetNumber"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/search/deliverypoint": {
      "get": {
        "tags": [
          "SearchFunctionality"
        ],
        "summary": "Gets delivery point identifier asynchronous.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Get or set the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StreetName",
            "in": "query",
            "description": "Get or set the street name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "StreetNumber",
            "in": "query",
            "description": "Get or set the street number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "City",
            "in": "query",
            "description": "Get or set the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Referer",
            "in": "query",
            "description": "Get or set the referer URL.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Entrance",
            "in": "query",
            "description": "Get or set the entrance.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FloorType",
            "in": "query",
            "description": "Get or set the floor type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FloorNo",
            "in": "query",
            "description": "Get or set the floor.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "FlatNo",
            "in": "query",
            "description": "Get or set the flat.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "LookOnlyForAddress",
            "in": "query",
            "description": "Look only for the address, or is it expected also to find floor/flat?",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "LimitToOfficial",
            "in": "query",
            "description": "Only for Norway: Return all addresses (may be duplicates and streets without numbers) or only\n            return addresses from the official register.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int32",
                  "nullable": true
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{organizationId}/settings": {
      "post": {
        "tags": [
          "Settings"
        ],
        "summary": "Adds a setting for organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Gets settings for organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Gets or sets the type.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SettingView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/organization/{organizationId}/settings/{type}": {
      "delete": {
        "tags": [
          "Settings"
        ],
        "summary": "Deletes the a setting for organization.",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Settings"
        ],
        "summary": "Gets a setting for organization.",
        "operationId": "GetSetting",
        "parameters": [
          {
            "name": "organizationId",
            "in": "path",
            "description": "Identifier for the organization.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The type.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber": {
      "post": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Creates a subscriber.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The subscriber.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Gets a list of subscribers.",
        "parameters": [
          {
            "name": "ExternalId",
            "in": "query",
            "description": "Gets or sets the identifier of the external.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Gets or sets the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberView"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}": {
      "get": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Gets a subscriber.",
        "operationId": "FromSubscriberGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Deletes a subscriber.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}/subscribernumber": {
      "post": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Assigns a new subscriber number.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new subscriber number.",
          "content": {
            "application/json": {
              "schema": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}/externalid": {
      "post": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Assigns a new external id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The new external id.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}/history": {
      "get": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Get subscriber histories.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ExternalId",
            "in": "query",
            "description": "Gets or sets the identifier of the external.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Gets or sets the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberHistoryView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/gdpr/subscriber/{subscriberId}": {
      "delete": {
        "tags": [
          "Subscriber"
        ],
        "summary": "Deletes the subscribers asynchronous by GDPR reason.",
        "parameters": [
          {
            "name": "subscriberId",
            "in": "path",
            "description": "The subscriber identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/configuration": {
      "get": {
        "tags": [
          "SubscriberConfiguration"
        ],
        "summary": "Gets subscriber number configuration.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNumberConfigurationView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "SubscriberConfiguration"
        ],
        "summary": "Create configuration to generate subscriber number.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Toggle generation of subscriber numbers, if external is defined it is assumed the client is responsible for supplying subscriber numbers.",
          "content": {
            "application/json": {
              "schema": {
                "type": "boolean"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Created"
          },
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/configuration/sequence": {
      "post": {
        "tags": [
          "SubscriberConfiguration"
        ],
        "summary": "Initializes the subscriber number sequence.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The configuration.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberSequenceNumberConfiguration"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SubscriberConfiguration"
        ],
        "summary": "Gets the current number asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "integer",
                  "format": "int64"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}/contact": {
      "post": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Create a new contact.",
        "description": "Creates a new contact for a subscriber with address details etc.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the subscriber.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the contact that should be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberContact"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the contact was created. The response body includes the created\n<a href=\"#model-SubscriberContactView\">SubscriberContactView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberContactView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Get contacts.",
        "description": "Gets subscriber contacts for specified subscriber.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrderView\">OrderView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberContactView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/contact/{id}": {
      "delete": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Delete a contact.",
        "description": "Delete a specific subscriber contact based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber contact Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": "No subscriber contact was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Get a contact.",
        "description": "Gets a specific subscriber contact based on its Id.",
        "operationId": "FromContactGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber contact Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-SubscriberContactView\">SubscriberContactView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberContactView"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber contact was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Update a contact.",
        "description": "Update a specific subscriber contact based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber contact Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the contact that should be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberContact"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": "No subscriber contact was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/contact": {
      "get": {
        "tags": [
          "SubscriberContact"
        ],
        "summary": "Get contacts.",
        "description": "Gets subscriber contacts based on a query filter.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Name",
            "in": "query",
            "description": "Gets or sets the name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Phone",
            "in": "query",
            "description": "Gets or sets the phone.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Email",
            "in": "query",
            "description": "Gets or sets the email.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "City",
            "in": "query",
            "description": "Gets or sets the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Zip",
            "in": "query",
            "description": "Gets or sets the zip.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Address",
            "in": "query",
            "description": "Gets or sets the address.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CareOf",
            "in": "query",
            "description": "Gets or sets the CareOf property.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrderView\">OrderView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberContactView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Gets deliveries asynchronous.",
        "operationId": "ConfigurationControllerRoot",
        "parameters": [
          {
            "name": "Type",
            "in": "query",
            "description": "Get or set the type of the distribution innovation.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "IsExported",
            "in": "query",
            "description": "Get or set the exported delivery or not.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Gets or sets the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "StartTimeMin",
            "in": "query",
            "description": "Gets or sets the minimum of start time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "StartTimeMax",
            "in": "query",
            "description": "Gets or sets the maximum of start time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.DistributionInnovation.Contracts.DeliveryView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/regenerate": {
      "post": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Regenerates the distribution innovation delivery asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The delivery identifier and type pair.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveryIdTypePair"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/export": {
      "post": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Exports deliveries to the file asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The export settings.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeliveriesExportSettings"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/exportspecific": {
      "post": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Exports deliveries to the file asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The export settings.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpecificDeliveriesExportSettings"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/organizationexport": {
      "post": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Exports organization deliveries to the file asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The export settings.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationDeliveriesExportSettings"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/files/{id}": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Gets file record asynchronous.",
        "operationId": "GetFileRecord",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "File identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileRecordView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/files": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "Gets file records asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FileRecordView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/deliveries": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "The wrapper for the DI API that gets subscriber deliveries.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Gets or sets the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "Gets or sets the minimum of start time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "Gets or sets the maximum of start time.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberDelivery"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/deviations": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "The wrapper for the DI API that gets deviations.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Get or set the product identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberNumber",
            "in": "query",
            "description": "Gets or sets the subscriber number.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "FromDate",
            "in": "query",
            "description": "Gets or sets the minimum of start time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ToDate",
            "in": "query",
            "description": "Gets or sets the maximum of start time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Deviation"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/distributioninnovation/subscriberdelivery/distributions": {
      "get": {
        "tags": [
          "SubscriberDelivery"
        ],
        "summary": "The wrapper for the DI API that gets distributions.",
        "parameters": [
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Get or set the organization identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Get or set the product identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Get or set the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "City",
            "in": "query",
            "description": "Get or set the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Street",
            "in": "query",
            "description": "Get or set the street.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Zip",
            "in": "query",
            "description": "Gets or sets zip code.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "HouseNumber",
            "in": "query",
            "description": "Get or set the house number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Entrance",
            "in": "query",
            "description": "Get or set the entrance.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Distribution"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriberexport/{id}": {
      "get": {
        "tags": [
          "SubscriberExport"
        ],
        "summary": "Get all export data for a subscriber.",
        "description": "Gets all stored data for a subscriber based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The package Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-SubscriberExportTotal\">SubscriberExportTotal</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberExportTotal"
                }
              }
            }
          },
          "404": {
            "description": "No Subscriber was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/{id}/notes": {
      "post": {
        "tags": [
          "SubscriberNote"
        ],
        "summary": "Create a new note.",
        "description": "Creates a new note for a subscriber.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the subscriber.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the note that should be created.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberNote"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the note was created. The response body includes the created\n<a href=\"#model-SubscriberNoteView\">SubscriberNoteView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNoteView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/notes/{id}": {
      "delete": {
        "tags": [
          "SubscriberNote"
        ],
        "summary": "Delete a note.",
        "description": "Delete a specific subscriber note based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber note Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": "No subscriber note was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SubscriberNote"
        ],
        "summary": "Get a note.",
        "description": "Gets a specific subscriber note based on its Id.",
        "operationId": "FromNoteGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber note Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-SubscriberNoteView\">SubscriberNoteView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNoteView"
                }
              }
            }
          },
          "404": {
            "description": "No subscriber note was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "SubscriberNote"
        ],
        "summary": "Update a note.",
        "description": "Update a specific subscriber note based on its Id.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscriber note Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The parameters for the note that should be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberNote"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": ""
          },
          "404": {
            "description": "No subscriber note was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriber/notes": {
      "get": {
        "tags": [
          "SubscriberNote"
        ],
        "summary": "Gets the filtered notes.",
        "parameters": [
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Signature",
            "in": "query",
            "description": "Gets or sets the signature. The signature.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-OrderView\">NoteView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberNoteView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/subscriber": {
      "post": {
        "tags": [
          "SubscriberSource"
        ],
        "summary": "Creates the subscriber source asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The source a to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriberSourceCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SubscriberSource"
        ],
        "summary": "Gets the subscriber sources asynchronous.",
        "parameters": [
          {
            "name": "UserId",
            "in": "query",
            "description": "Gets or sets the identifier of the user.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriberSource"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/source/subscriber/{id}": {
      "get": {
        "tags": [
          "SubscriberSource"
        ],
        "summary": "Gets the subscriber source asynchronous.",
        "operationId": "GetSubscriberSource",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriberSource"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "SubscriberSource"
        ],
        "summary": "Deletes the subscriber source asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The source identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get all subscriptions.",
        "parameters": [
          {
            "name": "Cancelled",
            "in": "query",
            "description": "Gets or sets the cancelled.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "EnterprisePlanId",
            "in": "query",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "InvoiceContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the invoice contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "NextInvoiceContactId",
            "in": "query",
            "description": "Gets or sets the identifier of the next invoice contact.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "NextSubscription",
            "in": "query",
            "description": "Gets or sets the next subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Gets or sets the identifier of the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Renewed",
            "in": "query",
            "description": "Gets or sets the renewed.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberAccount",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-SubscriptionView\">SubscriptionView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SubscriptionView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/contact/{contactId}": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Assign next invoice contact on a running subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "contactId",
            "in": "path",
            "description": "The identifier for the subscriber contact.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The subscription was updated."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/next": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Calculate next subscription.",
        "description": "Calculate the next subscription basen on an existing one.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-SubscriptionView\">SubscriptionView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionView"
                }
              }
            }
          },
          "404": {
            "description": "No Subscription was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/cancel": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Cancel a running subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Details about the cancellation(time and cause).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionCancel"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The Subscription has been queued for cancellation."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "204": {
            "description": "The subscription was cancelled."
          }
        }
      },
      "delete": {
        "tags": [
          "Subscription"
        ],
        "summary": "Remeve the cancellation from a subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The cancellation has been removed."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The cancellation has been queued for removal."
          }
        }
      }
    },
    "/subscription/{id}": {
      "delete": {
        "tags": [
          "Subscription"
        ],
        "summary": "Delete a future subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The subscription was deleted."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get a subscription.",
        "description": "Gets a specific subscription based on its Id.",
        "operationId": "FromSubscriptionGuid",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-SubscriptionView\">SubscriptionView</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionView"
                }
              }
            }
          },
          "404": {
            "description": "No Subscription was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/contact": {
      "delete": {
        "tags": [
          "Subscription"
        ],
        "summary": "Delete next invoice contact on a running subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The subscription was updated."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/changepaymentagreement": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Changes the payment agreement for subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The agreement change.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionAgreementChange"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{id}/restart": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Restart a cancelled subscription.",
        "description": "This will use the products of the old subscription, and create a new fullprice subscription.\nNB! It's in most cases adviseable to add a new order instead of using this function, because it will bypass template packages configuration,\nand can lead to starting new subscriptions on combinations/prices packages that are no longer configured.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The subscription restart parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionRestart"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{subscriptionId}/scheduledchange": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Create a new scheduled subscription change.",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The scheduled subscription change parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledSubscriptionChange"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The scheduled subscription change was accepted for creation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/scheduledsubscriptionchange/{id}": {
      "put": {
        "tags": [
          "Subscription"
        ],
        "summary": "Update an existing, not processed, scheduled subscription change.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The scheduled subscription change parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledSubscriptionChange"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The scheduled subscription change was accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Gets a scheduled subscription change by Id.",
        "operationId": "GetScheduledSubscriptionChange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the scheduled subscription change.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "No ScheduledSubscriptionChange was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "200": {
            "description": "A single <a href=\"#model-ScheduledSubscriptionChangeView\">ScheduledSubscriptionChangeView</a> instance."
          }
        }
      },
      "delete": {
        "tags": [
          "Subscription"
        ],
        "summary": "Delete a scheduled subscription change.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the scheduled subscription change.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The scheduled subscription change was deleted."
          },
          "404": {
            "description": "No scheduled subscription change was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/scheduledsubscriptionchange": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get all scheduled subscription changes.",
        "parameters": [
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "Gets or sets the identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MinimumScheduledTime",
            "in": "query",
            "description": "Gets or sets the minimum scheduled time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumScheduledTime",
            "in": "query",
            "description": "Gets or sets the maximum scheduled time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          },
          "200": {
            "description": "A collection of <a href=\"#model-ScheduledSubscriptionChangeView\">ScheduleSubscriptionChangeView</a> objects."
          }
        }
      }
    },
    "/subscription/{id}/additionalproducts": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Adds additional products to a subscription.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the subscription.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Properties for the additional products to add.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAdditionalProductsRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The additional products were added successfully."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "put": {
        "tags": [
          "Subscription"
        ],
        "summary": "Schedule a cancellation/removal of additional products. Removed additional products are not prorated.",
        "description": "If you have previously removed products \"at renewal\" on the same subscription, the removal order will be replaced. So the last call needs to contain all the products to remove.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The additional products to remove.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveAdditionalProductsRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The additional products were scheduled for removal."
          },
          "404": {
            "description": "No subscription was found with the given Id."
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/{subscriptionId}/scheduledcancellation": {
      "post": {
        "tags": [
          "Subscription"
        ],
        "summary": "Create a new scheduled cancellation for a subscription.",
        "parameters": [
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The scheduled cancellation parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledCancellationCreate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The scheduled cancellation was accepted for creation.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/scheduledcancellation/{id}": {
      "put": {
        "tags": [
          "Subscription"
        ],
        "summary": "Update an existing scheduled cancellation.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The scheduled cancellation identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The scheduled cancellation parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledCancellationUpdate"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "The scheduled cancellation was accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "Subscription"
        ],
        "summary": "Delete a scheduled cancellation.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The scheduled cancellation identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The scheduled cancellation was deleted."
          },
          "404": {
            "description": "No scheduled cancellation was found with the given Id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Gets a scheduled cancellation by Id.",
        "operationId": "GetScheduledCancellation",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier for the scheduled cancellation.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single ScheduledCancellation instance."
          },
          "404": {
            "description": "No scheduled cancellation was found with the given id."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscription/scheduledcancellation": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Get all scheduled cancellations.",
        "parameters": [
          {
            "name": "SubscriptionId",
            "in": "query",
            "description": "The identifier of the subscription.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The identifier of the subscriber.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MinimumCancellationTime",
            "in": "query",
            "description": "The minimum cancellation time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumCancellationTime",
            "in": "query",
            "description": "The maximum cancellation time.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of ScheduledCancellation objects."
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriptionplan/{id}": {
      "get": {
        "tags": [
          "SubscriptionPlan"
        ],
        "summary": "Gets a subscription plan by identifier.",
        "operationId": "GetSubscriptionPlan",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the subscription plan.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "The subscription plan including its products, billing terms and any configured chain.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionPlanView"
                }
              }
            }
          },
          "404": {
            "description": "No subscription plan was found with the given identifier."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "SubscriptionPlan"
        ],
        "summary": "Deletes a subscription plan.",
        "description": "\nA plan can only be deleted when it is no longer referenced by any active subscription.\n            Attempting to delete a plan that is still in use will return 409 Conflict. Cancel or migrate\n            the affected subscriptions before retrying.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the subscription plan to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "The plan was deleted successfully."
          },
          "404": {
            "description": "No subscription plan was found with the given identifier."
          },
          "409": {
            "description": "The plan is still referenced by one or more active subscriptions and cannot be deleted.\nThe response body contains details about the conflict."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/subscriptionplan": {
      "post": {
        "tags": [
          "SubscriptionPlan"
        ],
        "summary": "Creates a new subscription plan.",
        "description": "\nA subscription plan defines the commercial terms — name, price, billing frequency and optional\n            product items, chain and discounts — that will be applied when subscriptions referencing this\n            plan are created or changed.\n\nOnce created, the plan can be referenced by its identifier via `PlanSelection.SubscriptionPlanId`\n            on `POST /Subscription` and `POST|PUT /Subscription/{id}/scheduledchange`.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The plan definition, including the owning subscriber and organisation identifiers and the\nfull plan draft (price, billing frequency, products, etc.).",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubscriptionPlanCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The plan was created. The response body is a Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView. The `Location` header points to `GET /SubscriptionPlan/{id}`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubscriptionPlanView"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/agreement/import": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Imports an already existing SwedbankPay agreement into the system.",
        "description": "The SwedbankPay agreement must exist in the Swedbank environment referenced by the AccountId, if it does not, the import will fail when trying to get the details associated with order reference.",
        "operationId": "ImportAgreement",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Details for the SwedbankPay agreement.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.PayEx.Contracts.ImportAgreement"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "Accepted the SwedbankPay agreement for import. Refer to the location for where the SwedbankPay agreement will be, once created."
          }
        }
      }
    },
    "/swedbankpay/agreement": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Starts registration process for a new payex ecommerce card agreement.",
        "operationId": "StartSwedbankPayAgreementRegistrationAsync",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The aggrement registration details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartAgreementRegistration"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Gets a collection of SwedbankPay agreements for a given filter.",
        "operationId": "GetSwedbankPayAgreementsAsync",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Indicates to filter for a specific agreement, if given should never return more than 1 result.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AccountId",
            "in": "query",
            "description": "Account Id the agreement should belong to.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AgreementReference",
            "in": "query",
            "description": "The external agreement reference (old terminology for the recurrence/unscheduled token).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OriginalOrderReference",
            "in": "query",
            "description": "The original order reference (old terminology for the PaymentOrderId).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CardExpiration",
            "in": "query",
            "description": "Filer by the expiration date. Note that cards always expire on the last day of any given month.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.PayEx.Contracts.Agreement"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/agreement/{id}/complete": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Completes registration of an already initialized agreement.",
        "operationId": "CompleteSwedbankPayAgreementRegistrationAsync",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the agreement to complete/create.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input details containing extra reference parameters if any.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompleteAgreementRegistration"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/agreement/{id}": {
      "delete": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Deletes the specified agreement.",
        "operationId": "DeleteSwedbankPayAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id for the agreement to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Gets a specific SwedbankPay agreement by its identier.",
        "operationId": "GetSwedbankPayAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The agreement identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.PayEx.Contracts.Agreement"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/transaction/{id}": {
      "get": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Gets a specific SwedbankPay transaction by its identifier.",
        "operationId": "GetSwedbankPayTransaction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/transaction": {
      "get": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Gets a collection of SwedbankPay transactions for a given filter.",
        "operationId": "GetSwedbankPayTransactions",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier of the transaction.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AccountId",
            "in": "query",
            "description": "Gets or sets the identifier of the account.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AgreementId",
            "in": "query",
            "description": "Gets or sets the identifier of the agreement.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "IncludeReversals",
            "in": "query",
            "description": "Gets a value indicating whether the reversals should be included in the result or not.\nIMPORTANT: If no other filters are provided, this may return a large amount of data and should be used with caution.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Transaction"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Starts the process for authorization of a transaction with SwedbankPay. Actual user authorization happens with SwedbankPay.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StartPaymentAuthorization"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentOrderResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/transaction/{id}/capture": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Attempt to capture an already authorized transaction.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/transaction/{id}/cancel": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Attempt to cancel an already authorized transaction.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/swedbankpay/transaction/{id}/reverse": {
      "post": {
        "tags": [
          "SwedbankPay"
        ],
        "summary": "Attempt to reverse an already captured transaction.",
        "description": "Use this to refund/pay back the transaction.\n\nCannot be used as a general remitment/payout feature, it must be the reversal of a previously captured transaction.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the transaction.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Reversal properties such as the amount, description and currency.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestForPayment"
              }
            }
          }
        },
        "responses": {
          "404": {
            "description": "Not Found"
          },
          "202": {
            "description": "Accepted"
          },
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/tag/{type}/{referenceId}/{value}": {
      "post": {
        "tags": [
          "Tag"
        ],
        "summary": "Adds a new tag.",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "description": "The tag type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TagType"
            }
          },
          {
            "name": "referenceId",
            "in": "path",
            "description": "The reference identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "value",
            "in": "path",
            "description": "The tag value.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/tag/tags/{referenceId}/{type}/{value}": {
      "delete": {
        "tags": [
          "Tag"
        ],
        "summary": "Deletes a tag.",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "description": "The reference identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The tag type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TagType"
            }
          },
          {
            "name": "value",
            "in": "path",
            "description": "The tag value.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/tag/{referenceId}": {
      "delete": {
        "tags": [
          "Tag"
        ],
        "summary": "Deletes a tag.",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "description": "The reference identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/tag/{referenceId}/{type}": {
      "delete": {
        "tags": [
          "Tag"
        ],
        "summary": "Deletes a tag.",
        "parameters": [
          {
            "name": "referenceId",
            "in": "path",
            "description": "The reference identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "path",
            "description": "The tag type.",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/TagType"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/management/tag/tags": {
      "get": {
        "tags": [
          "Tag"
        ],
        "summary": "Get tags.",
        "parameters": [
          {
            "name": "ReferenceId",
            "in": "query",
            "description": "Gets or sets the reference identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Type",
            "in": "query",
            "description": "Gets or sets the type.",
            "schema": {
              "$ref": "#/components/schemas/TagType"
            }
          },
          {
            "name": "Value",
            "in": "query",
            "description": "Gets or sets the description.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Tag"
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/taxgroup": {
      "get": {
        "tags": [
          "TaxGroup"
        ],
        "summary": "Get all Tax Groups.",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "Gets or sets the identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ProductId",
            "in": "query",
            "description": "Gets or sets the identifier of the product.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of <a href=\"#model-TaxGroupView\">TaxGroupView</a> objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TaxGroupView"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/taxgroup/{id}": {
      "get": {
        "tags": [
          "TaxGroup"
        ],
        "summary": "Gets a tax group by its Id.",
        "operationId": "GetTaxGroup",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The tax group identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxGroupView"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/user": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Creates the user asynchronous.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The user to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets the users asynchronous.",
        "parameters": [
          {
            "name": "IdentityProviderId",
            "in": "query",
            "description": "The identity provider that owns the user identity.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The subscriber which the user entity is associated with.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ExternalId",
            "in": "query",
            "description": "The External Id to filter by. This is usually the User Id assigned by the Identity Provider.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/user/{id}": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets the user asynchronous.",
        "operationId": "GetUser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      },
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Deletes the users asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/user/{id}/mapsubscriber": {
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Maps the user to the subscriber asynchronous.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The user identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The subscriber identifier.",
          "content": {
            "application/json": {
              "schema": {
                "type": "string",
                "format": "uuid"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "404": {
            "description": "Not Found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/{tenantId}/userclaims": {
      "post": {
        "tags": [
          "UserClaims"
        ],
        "summary": "Generate/Get custom data that is convertible to IdP claims.",
        "description": "The intended purpose of this API is to be used as a connector in IdP integrations, allowing live/realtime population of Product claims into the IdP generated token. \n\n\nThis endpoint requires special authentication different from the rest of the API.\n\n\nContact support or your account manager for obtaining the credentials, and information on how to pass them along.\n\n",
        "parameters": [
          {
            "name": "tenantId",
            "in": "path",
            "description": "The tenant identifier (also required in the Header so it needs to be specified twice).",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The Id of the user from the IdP, typically taken from <tt>oid</tt> or <tt>sub</tt> in the token.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityProviderUser"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A dictionary (key/value list) of possible claims for the user.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "An object containing human readable validation issues.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/authorizations/identityprovider/{identityProviderId}/user/{externalId}": {
      "get": {
        "tags": [
          "UserProducts"
        ],
        "summary": "Gets a list of products mapped to a user for the given IdP.",
        "parameters": [
          {
            "name": "identityProviderId",
            "in": "path",
            "description": "The identity provider (IdP).",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "externalId",
            "in": "path",
            "description": "The identifier for the user, typically the <tt>oid</tt> or the <tt>sub</tt> taken from the IdP token. But it may vary.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A list of products that the user is currently mapped to on that specific IdP.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ProductView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "An object containing human readable validation issues.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vaxtransfer/account": {
      "post": {
        "tags": [
          "VaxTransfer"
        ],
        "summary": "Creates a new VaxTransfer Account Configuration.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The input parameter.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAccount"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The created account and a location for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.EhfInvoice.Contracts.VaxTransfer.Account"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "VaxTransfer"
        ],
        "summary": "Gets VaxTransfer account configurations filtered by the given query filter information.",
        "parameters": [
          {
            "name": "Enabled",
            "in": "query",
            "description": "Filter for enabled/disabled accounts.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "UseTestEnvironment",
            "in": "query",
            "description": "Filter for test environment.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "Filter for the organization.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.EhfInvoice.Contracts.VaxTransfer.Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        }
      }
    },
    "/vaxtransfer/account/{id}": {
      "get": {
        "tags": [
          "VaxTransfer"
        ],
        "summary": "Gets a specific VaxTransfer account configuration.",
        "operationId": "GetAccountById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the account.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "404": {
            "description": "No account was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.EhfInvoice.Contracts.VaxTransfer.Account"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "VaxTransfer"
        ],
        "summary": "Updates the specified VaxTransfer account with the modified properties. All properties are\nreplaced with their new values.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier of the account to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The properties to replace with.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccount"
              }
            }
          }
        },
        "responses": {
          "404": {
            "description": "No account was found with the given Id.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.EhfInvoice.Contracts.VaxTransfer.Account"
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "VaxTransfer"
        ],
        "summary": "Deletes the account configuration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ProblemDetails"
                    },
                    {
                      "$ref": "#/components/schemas/HttpValidationProblemDetails"
                    }
                  ]
                }
              }
            }
          },
          "204": {
            "description": "The account has been deleted."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          }
        }
      }
    },
    "/vipps/vippsaccount": {
      "post": {
        "tags": [
          "Vipps"
        ],
        "summary": "Creates new Vipps account.",
        "operationId": "CreateAccount",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The account information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VippsAccountCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Success, the account was created. The response body includes the guid that identifies the newly created account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        },
        "deprecated": true
      },
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Get filtered accounts.",
        "operationId": "GetVippsAccounts",
        "parameters": [
          {
            "name": "Id",
            "in": "query",
            "description": "The Account Id. Might as well use the direct get API for this.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ClientId",
            "in": "query",
            "description": "The client id.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrganizationId",
            "in": "query",
            "description": "The organizaiton id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "UseTestEnvironment",
            "in": "query",
            "description": "Use to filter for accounts that uses custom the test environment (or not).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "UseCustomAPICredentials",
            "in": "query",
            "description": "Use to filter for accounts that uses custom API credentials (or not).",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-VippsAccount\">VippsAccount</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Account"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        },
        "deprecated": true
      }
    },
    "/vipps/vippsaccount/{id}": {
      "delete": {
        "tags": [
          "Vipps"
        ],
        "summary": "Deletes the account asynchronous described by accountId.",
        "operationId": "DeleteVippsAccounts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier for the account.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "The account has been deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No account was found with the given Id."
          }
        },
        "deprecated": true
      },
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Get a Vipps account.",
        "description": "Gets a specific Vipps account based on its Id.",
        "operationId": "GetVippsAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The account identifier.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-VippsAccount\">VippsAccount</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Account"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No account was found with the given id."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement": {
      "post": {
        "tags": [
          "Vipps"
        ],
        "summary": "Starts the process to create a new Vipps agreement.",
        "description": "This will create a new Draft Agreement which can later be confirmed once the user has been redirected to the Confirmation page and accepted the agreement in the App.",
        "operationId": "CreateVippsAgreement",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "Parameters which will used to create the vipps agreement.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Api.AgreementCreate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The request has been accepted and will be processed as soon as possible, the body contains a string with the AgreementId that is going to be created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        },
        "deprecated": true
      },
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Gets a collection of agreements that matches the given filter, or the empty collection if no criteria is satisfied.",
        "parameters": [
          {
            "name": "AgreementId",
            "in": "query",
            "description": "VippsChargeId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "SubscriberId",
            "in": "query",
            "description": "The subscriber identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "VippsAgreementId",
            "in": "query",
            "description": "The AgreementReference.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "AccountId",
            "in": "query",
            "description": "The VippsConfirmationUrl.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of agreements that matches the query criteria or an empty collection if nothing is matched.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Agreement"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement/{id}/confirm": {
      "post": {
        "tags": [
          "Vipps"
        ],
        "summary": "Confirm Vipps agreement.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement as provided by CreateAgreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "201": {
            "description": "The agreement confirmed successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement/{id}/update": {
      "patch": {
        "tags": [
          "Vipps"
        ],
        "summary": "Update Vipps agreement.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement that owns vipps agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The agreement update information.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgreementUpdate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The new agreement updated successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement/{id}": {
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Get's Vipps agreement.",
        "description": "Gets a specific Vipps agreement based on its agreementId.",
        "operationId": "GetVippsAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement that owns vipps agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-Agreement\">Agreement</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Agreement"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No agreement was found with the given id."
          }
        },
        "deprecated": true
      },
      "delete": {
        "tags": [
          "Vipps"
        ],
        "summary": "Cancel the Vipps agreement for both INFO-Subscription and in the Vipps app. The action is irreversible.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement to cancel.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement/import": {
      "post": {
        "tags": [
          "Vipps"
        ],
        "summary": "Imports an existing Vipps Agreement into the system. It must be an existing agreement as the details are obtained directly from Vipps.",
        "description": "Use this for migration scenarios where the agreement is generated in a different system,\nor when you want to create the Vipps Agreement with an external process instead of the processed defined by INFO-Subscription. \n\nTypically when you have multiple systems that needs the same agreement, or for parameters not suppored by INFO-Subscription are required.",
        "parameters": [
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "requestBody": {
          "description": "The agreement to import.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportAgreement"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "202": {
            "description": "The agreement has been accepted for importing and will be processed as time permits."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/agreement/{id}/remote": {
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Gets the Agreement directly from Vipps, based on the INFO-Subscription AgreementId.",
        "description": "This basically acts as a wrapper for the Vipps Recurring API, querying for their version of\nthe Agreement without regards to the INFO-Subscription states.",
        "operationId": "GetRemoteVippsAgreement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Identifier of the agreement.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A direct representation of the Vipps Agreement as returned by the Vipps Recurring API."
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No agreement was found with the given id."
          },
          "503": {
            "description": "The upstream Vipps Service is unavailable, please try again later."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/charge/{id}": {
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Get a Vipps charge based in chagreId.",
        "operationId": "GetVippsCharge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The charge identifier which will be used to uniquely identify the charge.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A single <a href=\"#model-charge\">charge</a> instance.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Charge"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No charge was found with the given id."
          }
        },
        "deprecated": true
      }
    },
    "/vipps/charge": {
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "Get filtered charges.",
        "parameters": [
          {
            "name": "ChargeId",
            "in": "query",
            "description": "VippsChargeId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "AgreementId",
            "in": "query",
            "description": "The agreement id for corresponding charge.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "VippsChargeId",
            "in": "query",
            "description": "The Vipps charge id.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "VippsAgreementId",
            "in": "query",
            "description": "The agreement id for corresponding charge.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ChargeStatus",
            "in": "query",
            "description": "The status for charge.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "The Order VippsChargeId.",
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "A collection <a href=\"#model-charge\">charges</a>.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Charge"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "default": {
            "description": "Default empty response"
          }
        },
        "deprecated": true
      }
    },
    "/vipps/charge/{id}/remote": {
      "get": {
        "tags": [
          "Vipps"
        ],
        "summary": "The API calls upstream vipps service and gets the real time status of vipps charge based on chagreId.",
        "operationId": "GetVippsRemoteCharge",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The charge identifier which will be used to uniquely identify the charge.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/S4-TenantId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RemoteCharge"
                }
              }
            }
          },
          "401": {
            "description": "Access token is missing or invalid."
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request, check your input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationResultModel"
                }
              }
            }
          },
          "default": {
            "description": "Default empty response"
          },
          "404": {
            "description": "No charge was found with the given id."
          },
          "503": {
            "description": "The upstream Vipps service is not responding, please try again later."
          }
        },
        "deprecated": true
      }
    }
  },
  "components": {
    "schemas": {
      "ADB2CAccount": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityProviderAccount"
          }
        ],
        "properties": {
          "applicationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the b2c-extensions-app application.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The ADB2C account"
      },
      "ADB2CAccountCreate": {
        "required": [
          "credentials",
          "productsAttributeName",
          "subscriberIdAttributeName"
        ],
        "type": "object",
        "properties": {
          "credentials": {
            "$ref": "#/components/schemas/UserClaimsCredentials"
          },
          "productsAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the products attribute name."
          },
          "subscriberIdAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the subscriber identifier attribute name."
          },
          "applicationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the b2c-extensions-app application.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The ADB2C account create"
      },
      "ADB2CAccountUpdate": {
        "required": [
          "credentials",
          "productsAttributeName",
          "subscriberIdAttributeName"
        ],
        "type": "object",
        "properties": {
          "credentials": {
            "$ref": "#/components/schemas/UserClaimsCredentials"
          },
          "productsAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the products attribute name."
          },
          "subscriberIdAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the subscriber identifier attribute name."
          },
          "applicationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the b2c-extensions-app application.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The ADB2C account update"
      },
      "Account": {
        "type": "object",
        "properties": {
          "apiCredentials": {
            "$ref": "#/components/schemas/Credentials"
          },
          "baseUrl": {
            "type": "string",
            "description": "The base URI for the Vipps environment (available here for legacy purposes).",
            "format": "uri",
            "readOnly": true
          },
          "accountBranding": {
            "type": "string",
            "description": "Gets the account branding.",
            "readOnly": true
          },
          "id": {
            "type": "string",
            "description": "The account identifier.",
            "format": "uuid"
          },
          "merchantAccountNumber": {
            "type": "integer",
            "description": "The merchant serial number as provided by VippsMobilePay.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "Human Readable Display name of the Account."
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization owning the account",
            "format": "uuid"
          },
          "useCustomAPICredentials": {
            "type": "boolean",
            "description": "A value indicating whether to use custom API credentials, if false (default), the Infosoft Partner keys will be utilized."
          },
          "useTestEnvironment": {
            "type": "boolean",
            "description": "A value indicating whether to use the VippsMobilePay test environment, if not set (default) the production environment will be used."
          },
          "countryCode": {
            "type": "string",
            "description": "Represent the operation country of the Account."
          },
          "agreementDeactivationBehaviour": {
            "$ref": "#/components/schemas/AgreementDeactivationBehaviour"
          }
        },
        "additionalProperties": false,
        "description": "Represents a configuration/account in VippsMobilePay and defines how interaction with the VippsMobilePay API occurs."
      },
      "AccountCreate": {
        "type": "object",
        "properties": {
          "organizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Organization"
            },
            "description": "A list of organizations that this configuration should be valid for. Typically this is the list of all the organizations that accept money on the same bank account."
          },
          "bankAccountNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": "string",
            "description": "The Creditor Bank Account number that the configuration is valid for."
          },
          "isTesting": {
            "type": "boolean",
            "description": "An indicator that this account for testing only. By setting this the endpoint will switch to the Mastercard Payment Services integration and testing environment."
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating an AvtaleGiro or eFaktura account configuration."
      },
      "AccountPaymentDemandView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentDemandView"
          }
        ],
        "additionalProperties": false,
        "description": "An account payment demand view."
      },
      "AccountSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the source.",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user.",
            "format": "uuid"
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Account source model"
      },
      "AccountSourceCreate": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Get or set the user identifier",
            "format": "uuid"
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The create source command"
      },
      "AccountType": {
        "enum": [
          "AvtaleGiro",
          "eFaktura"
        ],
        "type": "string",
        "description": "An account type."
      },
      "AccountUpdate": {
        "type": "object",
        "properties": {
          "bankAccountNumber": {
            "maxLength": 11,
            "minLength": 11,
            "type": "string",
            "description": "The Creditor Bank Account number that the configuration is valid for."
          }
        },
        "additionalProperties": false,
        "description": "Parameters for updating an AvtaleGiro or eFaktura account configuration."
      },
      "AccountView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/AccountType"
          },
          "organizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Organization"
            },
            "description": "Get or set the list of organizations"
          },
          "bankAccountNumber": {
            "type": "string",
            "description": "Get or set the bank account number"
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          },
          "disableBankNotifications": {
            "type": "boolean",
            "description": "Get or set the bank notification for accounts."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an AvtaleGiro account"
      },
      "Accounting": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Identifier for the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Identifier for the invoice.",
            "format": "uuid",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Identifier for the external invoice.",
            "nullable": true
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Identifier for the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier for the organization.",
            "format": "uuid",
            "nullable": true
          },
          "paymentRequestId": {
            "type": "string",
            "description": "Identifier for the payment request.",
            "format": "uuid",
            "nullable": true
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Identifier for the payment demand.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Identifier for the payment.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Various accounting and reporting parameters used by INFO-Subscription. \n            Some of these values are purely for tracking/reporting/correlation purposes.\n            \n\n            Properties for payment creation will be used for payment matching in the most specific manner possible.\n            1. ExternalInvoiceIdentifier  \n            2. InvoiceId\n            3. SubscriberId/OrganizationId/SubscriberAccountId"
      },
      "AddAdditionalProductsRequest": {
        "type": "object",
        "properties": {
          "calculateBillingFrom": {
            "type": "string",
            "description": "The time to do proration/billing from. If not given, will be set to the current time. This MUST be within the current subscription period (or at the endtime)",
            "format": "date-time",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductRequest"
            },
            "description": "The products to add to the subscription."
          }
        },
        "additionalProperties": false,
        "description": "Request for adding additional products to a running subscription."
      },
      "AdditionalProduct": {
        "required": [
          "productId"
        ],
        "type": "object",
        "properties": {
          "templatePackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the template package.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the product identifier.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the number of units.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A additional product."
      },
      "AdditionalProductOrder": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The identifier of the product, should match an existing product.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "The number of units of this product.",
            "format": "int32"
          },
          "unitPriceOverride": {
            "$ref": "#/components/schemas/Price"
          },
          "renewalAtListPrice": {
            "type": "boolean",
            "description": "A value indicating whether to price during renewals at the list price instead of the override. This has no effect if price override is not given."
          }
        },
        "additionalProperties": false,
        "description": "An additional product to add to an order."
      },
      "AdditionalProductView": {
        "type": "object",
        "properties": {
          "subscriptionPackageId": {
            "type": "string",
            "description": "The the subscription package this product is associated with.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "The product identifier.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "The number of units of this product.",
            "format": "int64"
          },
          "includedInPlan": {
            "type": "boolean",
            "description": "A value indicating if this product is included in the subscription plan or not. Separately purchased products are always false, even if the price is zero."
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "renewalAtListPrice": {
            "type": "boolean",
            "description": "A value indicating whether the price should be re-calculated at renewal based on the list price or not. This has no effect if IncludedInPlan is true."
          }
        },
        "additionalProperties": false,
        "description": "Represents an additional product."
      },
      "Address": {
        "type": "object",
        "properties": {
          "streetAddress": {
            "type": "string",
            "description": "Address Line 1",
            "nullable": true
          },
          "formatted": {
            "type": "string",
            "description": "Formatted address",
            "nullable": true
          },
          "region": {
            "type": "string",
            "description": "Region/Area/City",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Zip Code",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An address."
      },
      "AddressInfo": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAddress"
          }
        ],
        "properties": {
          "municipalNr": {
            "type": "integer",
            "description": "The municipal number.",
            "format": "int32",
            "nullable": true
          },
          "apartmentNumber": {
            "type": "integer",
            "description": "The appartment number.",
            "format": "int32",
            "nullable": true
          },
          "descriptionAddress": {
            "type": "string",
            "description": "The description of address."
          },
          "boxType": {
            "type": "string",
            "description": "The box type."
          }
        },
        "additionalProperties": false,
        "description": "Information about the address."
      },
      "Agreement": {
        "type": "object",
        "properties": {
          "agreementId": {
            "type": "string",
            "description": "The Agreemnt identifier.",
            "format": "uuid"
          },
          "vippsAgreementId": {
            "type": "string",
            "description": "The VippsAgreementId."
          },
          "vippsConfirmationUrl": {
            "type": "string",
            "description": "The VippsConfirmationUrl.",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the account.",
            "format": "uuid"
          },
          "campaign": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PriceCampaign"
              },
              {
                "$ref": "#/components/schemas/PeriodCampaign"
              },
              {
                "$ref": "#/components/schemas/EventCampaign"
              }
            ],
            "description": "Gets or sets the campaign.",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The amount currency."
          },
          "customerPhoneNumber": {
            "type": "string",
            "description": "The phone number.",
            "nullable": true
          },
          "interval": {
            "type": "string",
            "description": "The agreement interval."
          },
          "intervalCount": {
            "type": "integer",
            "description": "The agreement interval count.",
            "format": "int32"
          },
          "isApp": {
            "type": "boolean",
            "description": "The is app."
          },
          "merchantAgreementUrl": {
            "type": "string",
            "description": "The merchant agreement url."
          },
          "merchantRedirectUrl": {
            "type": "string",
            "description": "The merchant redirect url.",
            "nullable": true
          },
          "price": {
            "type": "integer",
            "description": "The price.",
            "format": "int32"
          },
          "productName": {
            "type": "string",
            "description": "The product name."
          },
          "productDescription": {
            "type": "string",
            "description": "The product description."
          },
          "agreementStatus": {
            "type": "string",
            "description": "The current agreement status."
          },
          "isDeactivated": {
            "type": "boolean",
            "description": "Indicates that agreement was deleted."
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber identifier.",
            "format": "uuid"
          },
          "initialCharge": {
            "$ref": "#/components/schemas/InitialCharge"
          },
          "sub": {
            "type": "string",
            "description": "The VippsMobilePay subject Identifier (sub).",
            "nullable": true
          },
          "userinfoUrl": {
            "type": "string",
            "description": "A URL to obtain userinfo if applicable for the agreement.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Vipps agreement"
      },
      "AgreementDeactivationBehaviour": {
        "enum": [
          "None",
          "CancelSubscription"
        ],
        "type": "string",
        "description": "A enum/flag type that defines the desired behavior when deactivating an agreement."
      },
      "AgreementUpdate": {
        "type": "object",
        "properties": {
          "price": {
            "maximum": 2147483647,
            "minimum": 100,
            "type": "integer",
            "description": "The price.",
            "format": "int32",
            "nullable": true
          },
          "productName": {
            "type": "string",
            "description": "The product name.",
            "nullable": true
          },
          "productDescription": {
            "type": "string",
            "description": "The product description.",
            "nullable": true
          },
          "merchantAgreementUrl": {
            "type": "string",
            "description": "The merchant agreement self-service URL.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Properties for updating an agreement."
      },
      "Allowance": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/LineDetail"
          }
        ],
        "properties": {
          "taxGroup": {
            "$ref": "#/components/schemas/TaxGroup"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "additionalProperties": false,
        "description": "Represents an allowance (a discount/amount reduction) on an invoice."
      },
      "AllowanceType": {
        "enum": [
          "None",
          "ExtraPayment",
          "DemandCredited",
          "Balance",
          "AllowanceSplit",
          "PaymentDemandSettled",
          "Transferred"
        ],
        "type": "string",
        "description": "Values that represent allowance types."
      },
      "Amount": {
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "description": "Gets the value of the amount",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets the currency as an ISO 4217 Alphabetic Code"
          }
        },
        "additionalProperties": false,
        "description": "An amount with a currency of the amount"
      },
      "Auth0Account": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/IdentityProviderAccount"
          }
        ],
        "additionalProperties": false,
        "description": "The Auth0 account"
      },
      "Auth0AccountCreate": {
        "required": [
          "credentials",
          "productsAttributeName",
          "subscriberIdAttributeName"
        ],
        "type": "object",
        "properties": {
          "credentials": {
            "$ref": "#/components/schemas/UserClaimsCredentials"
          },
          "productsAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the products attribute name."
          },
          "subscriberIdAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the subscriber identifier attribute name."
          }
        },
        "additionalProperties": false,
        "description": "The Auth0 account create"
      },
      "Auth0AccountUpdate": {
        "required": [
          "credentials",
          "productsAttributeName",
          "subscriberIdAttributeName"
        ],
        "type": "object",
        "properties": {
          "credentials": {
            "$ref": "#/components/schemas/UserClaimsCredentials"
          },
          "productsAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the products attribute name."
          },
          "subscriberIdAttributeName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the subscriber identifier attribute name."
          }
        },
        "additionalProperties": false,
        "description": "The Auth0 account update"
      },
      "AutoGiroExportFileView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFileView"
          }
        ],
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Gets or sets the name of the file."
          },
          "fileId": {
            "type": "string",
            "description": "Gets or sets the file identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The default read model representation of an autogiro export file view."
      },
      "AutocompleteAddress": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAddress"
          }
        ],
        "properties": {
          "flatNo": {
            "type": "integer",
            "description": "The flat number.",
            "format": "int32",
            "nullable": true
          },
          "streetIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The collection of street address identifiers."
          }
        },
        "additionalProperties": false,
        "description": "An autocomplete address."
      },
      "BSExportFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the BS file identifier.",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type of file."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the organization identifier.",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the status of the file."
          },
          "fileName": {
            "type": "string",
            "description": "Gets or sets the name of the file."
          },
          "fileId": {
            "type": "string",
            "description": "Gets or sets the file identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The default read model representation of an BS export file."
      },
      "BalanceInvoiceSetting": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "balanceLimit": {
            "type": "number",
            "description": "Gets or sets the balance limit.",
            "format": "double"
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid"
          },
          "minimumAgeDays": {
            "type": "integer",
            "description": "Gets or sets the minimum age days for transactions.",
            "format": "int32"
          },
          "billingPlan": {
            "$ref": "#/components/schemas/BillingPlanView"
          }
        },
        "additionalProperties": false,
        "description": "The balance invoice settings view"
      },
      "BalanceInvoiceSettingsCreate": {
        "type": "object",
        "properties": {
          "balanceLimit": {
            "type": "number",
            "description": "Gets or sets the balance limit.",
            "format": "double"
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid"
          },
          "minimumAgeDays": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "Gets or sets the age.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Contains properties for creating balance invoice settings.."
      },
      "BaseAddress": {
        "type": "object",
        "properties": {
          "houseType": {
            "type": "string",
            "description": "The house type."
          },
          "street": {
            "type": "string",
            "description": "The street."
          },
          "houseNumber": {
            "type": "integer",
            "description": "The house number.",
            "format": "int32",
            "nullable": true
          },
          "entrance": {
            "type": "string",
            "description": "The entrance."
          },
          "city": {
            "type": "string",
            "description": "The City."
          },
          "postalCode": {
            "type": "string",
            "description": "The postal code."
          },
          "country": {
            "type": "string",
            "description": "The country."
          },
          "countryCode": {
            "type": "string",
            "description": "The country code."
          },
          "floorType": {
            "type": "string",
            "description": "The floor type."
          },
          "floor": {
            "type": "integer",
            "description": "The floor.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A base address."
      },
      "BaseFileView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the autogiro file identifier.",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type of file."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the organization identifier.",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the status of the file."
          }
        },
        "additionalProperties": false,
        "description": "The default read model representation of a autogiro base file view."
      },
      "BaseVippsOrderParameters": {
        "required": [
          "merchantAgreementUrl",
          "merchantRedirectUrl"
        ],
        "type": "object",
        "properties": {
          "customerPhoneNumber": {
            "type": "string",
            "description": "The phone number that should be pre-filled on the Vipps|MobilePay registration dialog, if not given an empty dialog will be shown.",
            "nullable": true
          },
          "merchantAgreementUrl": {
            "minLength": 1,
            "type": "string",
            "description": "A URL that describes the merchants/organization subscription agreement and how to manage it (typically a self-service URL)."
          },
          "merchantRedirectUrl": {
            "minLength": 1,
            "type": "string",
            "description": "The redirect url where the user should be sent to once the Vipps|MobilePay agreement registration flow has completed."
          },
          "isApp": {
            "type": "boolean",
            "description": "Set this to true, if the agreement registration flow happens inside a mobile app. Generates an App deeplink that only works on mobile/app enabled devices. Refer to the upstream documentation for details."
          },
          "observerOptions": {
            "$ref": "#/components/schemas/ObserverOptions"
          }
        },
        "additionalProperties": false,
        "description": "Order parameters for Vipps agreement registration."
      },
      "BillingAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "The organization.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "The currency."
          },
          "allowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Allowance"
            },
            "description": "The allowances open on this account"
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Charge"
            },
            "description": "The open charges on this account."
          }
        },
        "additionalProperties": false,
        "description": "A billing account."
      },
      "BillingAlignment": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/BillingAlignmentType"
          },
          "monthlyAlignmentValue": {
            "$ref": "#/components/schemas/BillingAlignmentValueMonthly"
          },
          "yearlyAlignmentValue": {
            "$ref": "#/components/schemas/BillingAlignmentValueYearly"
          },
          "billingPlanId": {
            "type": "string",
            "description": "The identifier for the billing plan to use. The billing plan chosen must have a Frequency equal to the Infosoft.S4.Api.DataContracts.V1.BillingAlignment.Type.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Defines billing alignment options such as how often the billing should occur and at which time."
      },
      "BillingAlignmentType": {
        "enum": [
          "Yearly",
          "Monthly"
        ],
        "type": "string",
        "description": "Values that represent billing alignment types."
      },
      "BillingAlignmentValueMonthly": {
        "type": "object",
        "properties": {
          "dayOfMonth": {
            "maximum": 31,
            "minimum": 1,
            "type": "integer",
            "description": "Gets or sets the day of month.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Options for when the alignment type is set to Monthly, such as the day of the month.\n            Only use this if you set the Infosoft.S4.Api.DataContracts.V1.BillingAlignment.Type to Infosoft.S4.Api.DataContracts.V1.BillingAlignmentType.Monthly."
      },
      "BillingAlignmentValueYearly": {
        "type": "object",
        "properties": {
          "dayOfMonth": {
            "maximum": 31,
            "minimum": 1,
            "type": "integer",
            "description": "The day of the month for billing and invoicing.",
            "format": "int32"
          },
          "month": {
            "maximum": 12,
            "minimum": 1,
            "type": "integer",
            "description": "The month for billing and invoicing.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Options for when the alignment type is set to Yearly, such as the date of the year.\nOnly use this if you set the Infosoft.S4.Api.DataContracts.V1.BillingAlignment.Type to Infosoft.S4.Api.DataContracts.V1.BillingAlignmentType.Yearly."
      },
      "BillingFlow": {
        "enum": [
          "Default",
          "None",
          "Recurring",
          "Initial"
        ],
        "type": "string",
        "description": "Values that represent billing which billing flow to use"
      },
      "BillingFrequencies": {
        "enum": [
          "OneDay",
          "TwoDays",
          "SevenDays",
          "TwoWeeks",
          "ThreeWeeks",
          "FourWeeks",
          "ThirtyDays",
          "SixWeeks",
          "EightWeeks",
          "OneMonth",
          "TwoMonths",
          "ThreeMonths",
          "FourMonths",
          "SixMonths",
          "TwelveMonths",
          "TwentyFourMonths",
          "Editions"
        ],
        "type": "string",
        "description": "Values that represent billing frequencies."
      },
      "BillingFrequencyUnits": {
        "enum": [
          "TimeSpan",
          "Months",
          "Items"
        ],
        "type": "string",
        "description": "Values that represent billing frequency units."
      },
      "BillingFrequencyView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Gets or sets the identifier.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "unit": {
            "$ref": "#/components/schemas/BillingFrequencyUnits"
          },
          "number": {
            "type": "string",
            "description": "Gets or sets the number of units."
          }
        },
        "additionalProperties": false,
        "description": "A billing frequency."
      },
      "BillingOptions": {
        "type": "object",
        "properties": {
          "flow": {
            "$ref": "#/components/schemas/BillingFlow"
          },
          "initial": {
            "$ref": "#/components/schemas/InitialOptions"
          },
          "recurring": {
            "$ref": "#/components/schemas/RecurringOptions"
          }
        },
        "additionalProperties": false,
        "description": "Options for controlling the billing flow."
      },
      "BillingPlanCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the name"
          },
          "frequency": {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.BillingFrequencies"
          },
          "minimumDueDays": {
            "type": "integer",
            "description": "Get or set the minimum due days",
            "format": "int32"
          },
          "dunningProcessId": {
            "type": "string",
            "description": "Get or set the dunning process identifier",
            "format": "uuid"
          },
          "invoiceFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceFee"
            },
            "description": "Get or set the invoice fees.",
            "nullable": true
          },
          "feeTaxCalculationPolicy": {
            "$ref": "#/components/schemas/TaxCalculationPolicyForFee"
          }
        },
        "additionalProperties": false,
        "description": "The billing plan create"
      },
      "BillingPlanExport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "frequency": {
            "$ref": "#/components/schemas/BillingFrequencies"
          }
        },
        "additionalProperties": false,
        "description": "A billing plan export."
      },
      "BillingPlanUpdate": {
        "required": [
          "feeTaxCalculationPolicy",
          "name"
        ],
        "type": "object",
        "properties": {
          "frequency": {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.BillingFrequencies"
          },
          "invoiceFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceFee"
            },
            "description": "Get or set the invoice fees.",
            "nullable": true
          },
          "minimumDueDays": {
            "type": "integer",
            "description": "Get or set the minimum due days",
            "format": "int32"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the name"
          },
          "feeTaxCalculationPolicy": {
            "$ref": "#/components/schemas/TaxCalculationPolicyForFee"
          }
        },
        "additionalProperties": false,
        "description": "The billing plan update"
      },
      "BillingPlanView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Get or set the name"
          },
          "frequency": {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.BillingFrequencies"
          },
          "minimumDueDays": {
            "type": "integer",
            "description": "Get or set the minimum due days",
            "format": "int32"
          },
          "dunningProcess": {
            "$ref": "#/components/schemas/DunningProcess"
          },
          "invoiceFees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceFeeView"
            },
            "description": "Get or set the list of invoice fee objects"
          },
          "taxCalculationPolicyForFee": {
            "$ref": "#/components/schemas/TaxCalculationPolicyForFee"
          }
        },
        "additionalProperties": false,
        "description": "The billing plan view"
      },
      "Buyer": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Recipient"
          }
        ],
        "additionalProperties": false,
        "description": "The person/subscriber that has purchased something which the Invoice represtens"
      },
      "CalendarCreate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date"
          },
          "expiryDate": {
            "type": "string",
            "description": "Gets or sets the expiry date.",
            "format": "date"
          },
          "isActivated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this object is activated."
          },
          "calendarType": {
            "$ref": "#/components/schemas/CalendarTypes"
          },
          "countryCode": {
            "$ref": "#/components/schemas/CountryCodes"
          },
          "exceptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExceptionContract"
            },
            "description": "Gets or sets the exceptions."
          },
          "patterns": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/IntervalPatternContract"
                },
                {
                  "$ref": "#/components/schemas/MonthDayPatternContract"
                },
                {
                  "$ref": "#/components/schemas/WeekDayPatternContract"
                }
              ],
              "description": "A pattern contract."
            },
            "description": "Gets or sets the patterns."
          }
        },
        "additionalProperties": false,
        "description": "A calendar create."
      },
      "CalendarQueryDate": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Gets or sets the date.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "A calendar query date."
      },
      "CalendarQueryDates": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "description": "Gets or sets start date.",
            "format": "date"
          },
          "end": {
            "type": "string",
            "description": "Gets or sets end date.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "A calendar query dates."
      },
      "CalendarTypes": {
        "enum": [
          "FixedCalendar",
          "PatternCalendar"
        ],
        "type": "string",
        "description": "Values that represent calendar types."
      },
      "CalendarUpdate": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Get or set the start date",
            "format": "date"
          },
          "expiryDate": {
            "type": "string",
            "description": "Get or set the expiry date",
            "format": "date"
          },
          "isActivated": {
            "type": "boolean",
            "description": "Get or set the activation state"
          },
          "countryCode": {
            "$ref": "#/components/schemas/CountryCodes"
          }
        },
        "additionalProperties": false,
        "description": "A calendar update."
      },
      "CalendarView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date"
          },
          "expiryDate": {
            "type": "string",
            "description": "Get or set the expiry date",
            "format": "date"
          },
          "isActivated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is activated."
          },
          "countryCode": {
            "$ref": "#/components/schemas/CountryCodes"
          },
          "patterns": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/IntervalPatternView"
                },
                {
                  "$ref": "#/components/schemas/MonthDayPatternView"
                },
                {
                  "$ref": "#/components/schemas/WeekDayPatternView"
                }
              ],
              "description": "A pattern view."
            },
            "description": "Gets or sets the patterns."
          },
          "exceptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExceptionView"
            },
            "description": "Gets or sets the exceptions."
          }
        },
        "additionalProperties": false,
        "description": "A calendar view."
      },
      "Campaign": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the campaign. Must be one of EVENT, PRICE or PERIOD."
          },
          "price": {
            "type": "integer",
            "description": "The price of the agreement in the discount period. The lowering of the price will be displayed in the Vipps/MobilePay App.\n                     Price is specified in minor units.NOK and DKK: 1 kr = 100 øre.EUR: 1 Euro = 100 cent.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a campaign in vipps/mobilepay."
      },
      "CancelSubscriptionsOnEnterprisePlan": {
        "required": [
          "subscriptions"
        ],
        "type": "object",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The subscriptions to cancel."
          },
          "cancellationCause": {
            "type": "string",
            "description": "The cancellation cause."
          },
          "cancellationTime": {
            "type": "string",
            "description": "An optional cancellation time if not given a default will be used.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A cancel subscriptions on enterprise plan."
      },
      "CardDetails": {
        "type": "object",
        "properties": {
          "cardMask": {
            "type": "string",
            "description": "The card mask (the card number with some parts replaced with asterisks, X'es or other dummy characters).",
            "nullable": true
          },
          "cardBrand": {
            "type": "string",
            "description": "The card brand association. This will typically be a credit card type, e.g. \"VISA\", \"MASTERCARD\", \"DANKORT\".",
            "nullable": true
          },
          "cardType": {
            "type": "string",
            "description": "The type of the card if available (Debit/Credit/Prepaid).",
            "nullable": true
          },
          "cardProfile": {
            "type": "string",
            "description": "The card profile if available (Consumer/Corporate/Business).",
            "nullable": true
          },
          "expiration": {
            "type": "string",
            "description": "The expiration date of the payment card.",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Metadata about a payment card, useful for display purposes and reporting mostly."
      },
      "CategoryCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A category create."
      },
      "CategoryUpdate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A category create."
      },
      "CategoryView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          }
        },
        "additionalProperties": false,
        "description": "A category create."
      },
      "Charge": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/LineDetail"
          }
        ],
        "properties": {
          "taxGroup": {
            "$ref": "#/components/schemas/TaxGroup"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Amount"
          }
        },
        "additionalProperties": false,
        "description": "Represents a cost to be paid on an invoice."
      },
      "ChargeType": {
        "enum": [
          "None",
          "PartialPayment",
          "DemandNotSettled",
          "Balance",
          "TransferedFromCreditedDemand",
          "Refund",
          "Transferred",
          "Purchase"
        ],
        "type": "string",
        "description": "Values that represent charge types."
      },
      "CheckDigitAlgorithm": {
        "enum": [
          "Modulus10",
          "Modulus11"
        ],
        "type": "string",
        "description": "Check digit algorithms for payment providers"
      },
      "ClaimCreate": {
        "type": "object",
        "properties": {
          "mandateId": {
            "type": "string",
            "description": "Get or set the mandate identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "The DueDate, including time parts. The given time will be converted into Norwegian local time and then the time part will be stripped away.",
            "format": "date-time"
          },
          "claimTextLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Get or set the claim text lines."
          },
          "kid": {
            "pattern": "^\\d+$",
            "type": "string",
            "description": "An optional KID. This overrides the one defined on the mandate. Useful to specify specific KID for instance for including invoice numbers.",
            "nullable": true
          },
          "notificationType": {
            "$ref": "#/components/schemas/NotificationType"
          }
        },
        "additionalProperties": false,
        "description": "Class represents an AvtaleGiro claim."
      },
      "ClaimView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the claim identifier",
            "format": "uuid"
          },
          "mandate": {
            "$ref": "#/components/schemas/MandateView"
          },
          "transactionId": {
            "type": "string",
            "description": "Get or set the transaction identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "Get or set the due date.",
            "format": "date-time"
          },
          "claimTextLines": {
            "type": "string",
            "description": "Get or set the claim text lines."
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Get or set the claim cencellation."
          },
          "kid": {
            "type": "string",
            "description": "Gets or sets the kid."
          },
          "notificationType": {
            "$ref": "#/components/schemas/NotificationType"
          }
        },
        "additionalProperties": false,
        "description": "Class represents an AvtaleGiro claim."
      },
      "CompleteAccountConnectTokenRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Gets or sets the authorization code to exchange."
          }
        },
        "additionalProperties": false,
        "description": "Request containing the authorization code returned by Mollie."
      },
      "CompleteAgreementRegistration": {
        "type": "object",
        "properties": {
          "references": {
            "$ref": "#/components/schemas/ExternalReferences"
          },
          "accounting": {
            "$ref": "#/components/schemas/Accounting"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for completing an agreement registration process."
      },
      "Configuration": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "enabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is enabled."
          },
          "accesspointId": {
            "type": "string",
            "description": "Gets or sets the identifier of the access point.",
            "nullable": true
          },
          "bankAccountNumber": {
            "type": "string",
            "description": "Gets or sets the bank account number.",
            "nullable": true
          },
          "organizationNumber": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A configuration."
      },
      "ConfigurationBase": {
        "required": [
          "customerSystem"
        ],
        "type": "object",
        "properties": {
          "customerSystem": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the customer system that sends the data."
          },
          "exportFileName": {
            "type": "string",
            "description": "Gets or sets the name of the export file.",
            "nullable": true
          },
          "productMappings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductMapping"
            },
            "description": "Gets or sets the list of the product mappings.",
            "nullable": true
          },
          "userName": {
            "type": "string",
            "description": "Gets or sets the user name.",
            "nullable": true
          },
          "password": {
            "type": "string",
            "description": "Gets or sets the password.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "Gets or sets the DI Url.",
            "nullable": true
          },
          "apiKey": {
            "type": "string",
            "description": "Gets or sets the DI API key for street search.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Base properties of a distribution innovation configuration."
      },
      "ConfigurationCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigurationBase"
          }
        ],
        "additionalProperties": false,
        "description": "Represents a create contract of distribution innovation configuration."
      },
      "ConfigurationUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigurationBase"
          }
        ],
        "additionalProperties": false,
        "description": "Represents a update contract of distribution innovation configuration."
      },
      "ConfigurationView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ConfigurationBase"
          }
        ],
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Represents a view contract of distribution innovation configuration."
      },
      "ConfirmMandateRequest": {
        "type": "object",
        "additionalProperties": false,
        "description": "Request body for confirming mandate registration."
      },
      "Contact": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets the name."
          },
          "telephone": {
            "type": "string",
            "description": "Gets the telephone.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets the email.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents contact information for an entity."
      },
      "Contract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the contract.",
            "format": "uuid",
            "nullable": true
          },
          "contractDate": {
            "type": "string",
            "description": "Gets or sets the contract date.",
            "format": "date-time",
            "nullable": true
          },
          "surchargeType": {
            "$ref": "#/components/schemas/ContractSurchargeType"
          },
          "surchargeAmount": {
            "type": "number",
            "description": "Gets or sets the surcharge amount.",
            "format": "double",
            "nullable": true
          },
          "surchargeTaxPercent": {
            "type": "number",
            "description": "Gets or sets the contract surcharge tax percent.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A contract."
      },
      "ContractSurchargeType": {
        "enum": [
          "None",
          "Fixed",
          "Calculated"
        ],
        "type": "string",
        "description": "Values that represent surcharge types."
      },
      "ContractType": {
        "enum": [
          "FixedDate",
          "NumberOfFrequencies"
        ],
        "type": "string",
        "description": "Values that represent contract types."
      },
      "ContractView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the contract.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "contractDate": {
            "type": "string",
            "description": "Gets or sets the contract date.",
            "format": "date-time"
          },
          "surchargeType": {
            "$ref": "#/components/schemas/ContractSurchargeType"
          },
          "surchargeAmount": {
            "type": "number",
            "description": "Gets or sets the surcharge amount.",
            "format": "double",
            "nullable": true
          },
          "surchargeTaxPercent": {
            "type": "number",
            "description": "Gets or sets the surcharge tax percent.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A contract view."
      },
      "CountryCodes": {
        "enum": [
          "None",
          "DK",
          "NO",
          "SE"
        ],
        "type": "string",
        "description": "Values that represent country codes."
      },
      "CreateAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the account. If not given one will be generated.",
            "format": "uuid",
            "nullable": true
          },
          "enabled": {
            "type": "boolean",
            "description": "A value indicating whether this account configuration is enabled. If not set will default to false."
          },
          "displayName": {
            "type": "string",
            "description": "The display name."
          },
          "useTestEnvironment": {
            "type": "boolean",
            "description": "A value indicating whether to use the test environment, if set to false (the default), the VaxTransfer production Environment will be used and Invoices will incur costs."
          },
          "organizationId": {
            "type": "string",
            "description": "The organization this configuration is valid for.",
            "format": "uuid"
          },
          "bankAccount": {
            "type": "string",
            "description": "The bank account information (if any) for payment of Invoices.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Fields for creating a new VaxTransfer Account Configuration."
      },
      "CreateAccountPaymentDemand": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The organization the demand is issued for.",
            "format": "uuid"
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "The account the demand is to be charge on.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber. Must be the owner of the account.",
            "format": "uuid"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The payment agreement used to process automatic payments and invocing.",
            "format": "uuid"
          },
          "billingPlanId": {
            "type": "string",
            "description": "The billing plan used to schedule billing and subsequent dunning.",
            "format": "uuid"
          },
          "settleAccountBalance": {
            "type": "boolean",
            "description": "Determine if any current account balance should be settled. If true existing charges and allowances will be included in addition to the given transactions."
          },
          "description": {
            "type": "string",
            "description": "An overall description for the demand, used for some automated payment providers to give a short summary of what the payment is about.",
            "nullable": true
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandTransaction"
            },
            "description": "A list of details\\transactions\\charges to apply to the paymentdemand, typically what the Subscriber is going to pay extra for."
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating \"standalone\" account demands."
      },
      "CreateAllowance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the charge.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount.",
            "format": "double"
          },
          "accountingTime": {
            "type": "string",
            "description": "The accounting time of the transaction (i.e. when is it effective from).",
            "format": "date-time"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand that caused this transaction (if a demand was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice (if a demand and invoice was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "The invoice number if it exists (if a demand and invoice was involved).",
            "format": "int64",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "The optional identifier of the payment that caused this transaction (if a payment was involved).",
            "format": "uuid",
            "nullable": true
          },
          "transactionType": {
            "$ref": "#/components/schemas/AllowanceType"
          },
          "startTime": {
            "type": "string",
            "description": "The start time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "The end time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An optional text description for the transaction.",
            "nullable": true
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating if this transaction is already summarized in the Billing Account Ledger for the subscriber. This determines how billing will subtract/add charges and allowances to the ledger during billing."
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetail"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "Represent an allowance to be billed on the next Invoice/Payment Demand."
      },
      "CreateCharge": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the charge.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount.",
            "format": "double"
          },
          "accountingTime": {
            "type": "string",
            "description": "The accounting time of the transaction (i.e. when is it effective from).",
            "format": "date-time"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand that caused this transaction (if a demand was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice (if a demand and invoice was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "The invoice number if it exists (if a demand and invoice was involved).",
            "format": "int64",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "The optional identifier of the payment that caused this transaction (if a payment was involved).",
            "format": "uuid",
            "nullable": true
          },
          "transactionType": {
            "$ref": "#/components/schemas/ChargeType"
          },
          "startTime": {
            "type": "string",
            "description": "The start time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "The end time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An optional text description for the transaction.",
            "nullable": true
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating if this transaction is already summarized in the Billing Account Ledger for the subscriber. This determines how billing will subtract/add charges and allowances to the ledger during billing."
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetail"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "Represent an charge to be billed on the next Invoice/Payment Demand."
      },
      "CreateCustomerRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "an optional pre-assigned platform customer ID. A new ID is generated if omitted.",
            "format": "uuid",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "description": "the Mollie account to create the customer under.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "the platform subscriber identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "the customer display name passed to Mollie. Optional — Mollie allows customers with no name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "the customer email address passed to Mollie. Optional — Mollie allows customers with no email.",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "description": "the optional Mollie locale (e.g. `nl_NL`).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request body for creating a new Mollie customer."
      },
      "CreateDemand": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/DemandType"
          },
          "accountDemand": {
            "$ref": "#/components/schemas/CreateAccountPaymentDemand"
          },
          "subscriptionDemand": {
            "$ref": "#/components/schemas/CreateSubscriptionPaymentDemand"
          },
          "orderDemand": {
            "$ref": "#/components/schemas/CreateOrderPaymentDemand"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for demand creation, input varies by type."
      },
      "CreateEPayment": {
        "required": [
          "accountId",
          "amount",
          "currency",
          "description",
          "userFlow"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The account setup this epayment should be initialized on.",
            "format": "uuid"
          },
          "reference": {
            "type": "string",
            "description": "A unique reference to the payment forwarded to VippsMobilePay. If not given the internal generated Id will be used.",
            "nullable": true
          },
          "amount": {
            "type": "integer",
            "description": "The amount of the payment in the lowest denomination (i.e. 10 NOK should be specified as 100).",
            "format": "int32"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency for the payment."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "The description of what the payment covers."
          },
          "returnUrl": {
            "type": "string",
            "description": "The url to return to when the redirect is done. Required for some user flows.",
            "nullable": true
          },
          "phoneNumber": {
            "maxLength": 15,
            "minLength": 10,
            "type": "string",
            "description": "The customers phone number, if known, if not provided it needs to be specified in the App.",
            "nullable": true
          },
          "profileScope": {
            "type": "string",
            "description": "The profile scope to require permission for. Refer to the VippsMobilePay documentation for details.",
            "nullable": true
          },
          "userFlow": {
            "type": "string",
            "description": "The user flow type, as defined by VippsMobilePay, please refer to their documentation for the details. Valid values are PUSH_MESSAGE, NATIVE_REDIRECT, WEB_REDIRECT and QR."
          },
          "captureTime": {
            "type": "string",
            "description": "If capture time is set, an attempt will be made to capture the payment automatically sometime after the capture time has passed.\n\n\nTypically use this for Invoices to be captured at a known Due Date for instance.",
            "format": "date-time",
            "nullable": true
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Accounting"
          }
        },
        "additionalProperties": false,
        "description": "Properties for creating a new epayment with VippsMobilePay."
      },
      "CreateOneOffPaymentRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the payment, in UUID/GUID format. If omitted, a new GUID is generated automatically. Use this for idempotency as well.",
            "format": "uuid",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "description": "The Mollie account to charge under.",
            "format": "uuid"
          },
          "amount": {
            "maximum": 1.7976931348623157E+308,
            "minimum": 0.01,
            "type": "number",
            "description": "The payment amount (must be greater than zero).",
            "format": "double"
          },
          "currency": {
            "maxLength": 3,
            "minLength": 3,
            "type": "string",
            "description": "The ISO 4217 currency code (e.g. `EUR`)."
          },
          "description": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "The description shown on the Mollie checkout page."
          },
          "redirectUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to after payment.",
            "nullable": true
          },
          "cancelUrl": {
            "type": "string",
            "description": "The URL to redirect the customer to when checkout is cancelled.",
            "nullable": true
          },
          "methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MandateMethod"
            },
            "description": "the preferred payment methods for the Mollie checkout request.",
            "nullable": true
          },
          "captureMode": {
            "$ref": "#/components/schemas/PaymentCaptureMode"
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Accounting"
          }
        },
        "additionalProperties": false,
        "description": "Request body for creating a one-off hosted-checkout payment."
      },
      "CreateOneOffPaymentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the platform payment identifier.",
            "format": "uuid"
          },
          "checkoutUrl": {
            "type": "string",
            "description": "the Mollie-hosted checkout URL to redirect the customer to."
          }
        },
        "additionalProperties": false,
        "description": "Response body for a one-off hosted-checkout payment."
      },
      "CreateOrderPaymentDemand": {
        "type": "object",
        "additionalProperties": false,
        "description": "Class represents order demand parameters for manual creation via API"
      },
      "CreatePayment": {
        "required": [
          "currency",
          "source"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber the payment should be matched to",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "valueDate": {
            "type": "string",
            "description": "The value date for the payment, i.e when was it added to the receiving account.",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "The date the payment was made.",
            "format": "date-time"
          },
          "paidAmount": {
            "maximum": 1000000000,
            "minimum": 0.01,
            "type": "number",
            "description": "The amount of the payment.",
            "format": "double"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency."
          },
          "source": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "The source of the payment."
          },
          "subCategory": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "description": "The sub category",
            "nullable": true
          },
          "comment": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "An optional comment.",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice this payment should match.",
            "format": "uuid",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "The external invoice identifier this payment should match.",
            "nullable": true
          },
          "automaticApproval": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to do automatic approval. The default is false"
          },
          "billingAccountId": {
            "type": "string",
            "description": "An optional identifier of the billing account, should only be set when using Billing Account matching.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceMatchType": {
            "$ref": "#/components/schemas/MatchingType"
          }
        },
        "additionalProperties": false,
        "description": "Data for creating a new payment"
      },
      "CreatePaymentDemandReminder": {
        "type": "object",
        "properties": {
          "counter": {
            "type": "integer",
            "description": "Optional 1-based sequence number for the reminder in this demand's reminder series.\nWhen omitted, the counter is auto-discovered from existing reminders in the read model.\nPrefer to supply the counter when possible to avoid extra internal lookup calls and ensure correct sequencing in case of concurrent reminder creation.",
            "format": "int32",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The due date for the reminder.",
            "format": "date-time"
          },
          "fee": {
            "type": "number",
            "description": "An optional fixed fee to apply to this reminder.",
            "format": "double",
            "nullable": true
          },
          "reminderPolicy": {
            "$ref": "#/components/schemas/ReminderPolicy"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating a reminder on a payment demand directly, without going through a dunning schedule.\nThis enables external parties (e.g. debt collectors) to register reminders and trigger the associated\ninvoice and ledger side-effects in INFO-Subscription without interfering with payment processing."
      },
      "CreateProductTaxDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets the identifier of the product.",
            "format": "uuid",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets the description.",
            "nullable": true
          },
          "taxableAmount": {
            "type": "number",
            "description": "The total amount without taxes (NOT UNIT Amount).",
            "format": "double",
            "nullable": true
          },
          "taxPercent": {
            "type": "number",
            "description": "The tax percent/rate.",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "description": "The total amount including taxes (NOT UNIT Amount).",
            "format": "double",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity sold. If not defined defaults to 1.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A DTO used during creation of Demand Transactions with Product Tax Detail information."
      },
      "CreateRefund": {
        "required": [
          "currency"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets identifier of the subscriber",
            "format": "uuid"
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets identifier of the subscriber account.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "comment": {
            "type": "string",
            "description": "Gets or sets comment.",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Gets or sets external reference identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data for creating a new refund"
      },
      "CreateRefundFromPayment": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string",
            "description": "Gets or sets comment.",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Gets or sets external reference identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data for creating a new refund"
      },
      "CreateSubscriberBillingAccount": {
        "required": [
          "currency"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "The organization.",
            "format": "uuid"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency."
          }
        },
        "additionalProperties": false,
        "description": "Creates a new billing account for the given subscriber."
      },
      "CreateSubscriptionPaymentDemand": {
        "type": "object",
        "additionalProperties": false,
        "description": "Class represents subscription demand parameters for manual creation via API"
      },
      "Credentials": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "description": "Identifier for the client (app username)."
          },
          "clientSecret": {
            "type": "string",
            "description": "The client secret (app password)."
          },
          "apimSubscriptionKey": {
            "type": "string",
            "description": "The Azure API Management subscription key."
          }
        },
        "additionalProperties": false,
        "description": "Credentials for API Authentication as assigned by VippsMobilePay."
      },
      "CreditBillingSettings": {
        "type": "object",
        "properties": {
          "disableConvertSettledDemandToAllowance": {
            "type": "boolean",
            "description": "Indicates whether to convert settled demand to allowance or not. If enabled (default), settled demands will be converted to allowances."
          }
        },
        "additionalProperties": false,
        "description": "A collection of settings for controlling billing behaviour during crediting operations."
      },
      "CreditNote": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/InvoiceBase"
          }
        ],
        "properties": {
          "creditedAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "description": {
            "type": "string",
            "description": "Description of the Credit Note",
            "nullable": true
          },
          "invoiceReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          }
        },
        "additionalProperties": false,
        "description": "Class represents a Credit Note (a document that reverses or corrects an invoice and inherites most of invoice's properties)"
      },
      "CreditNoteFileView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the credit note file identifier",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name of the credit note file"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type of the credit note file"
          },
          "mimeType": {
            "type": "string",
            "description": "Gets or sets the type of the credit note file"
          },
          "relativeLink": {
            "type": "string",
            "description": "Gets or sets the relative link of the credit note file"
          },
          "fileId": {
            "type": "string",
            "description": "Gets or sets the file identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "CreditNoteUpdate": {
        "type": "object",
        "properties": {
          "buyer": {
            "$ref": "#/components/schemas/OptionalOfBuyer"
          },
          "recipient": {
            "$ref": "#/components/schemas/OptionalOfRecipient"
          },
          "buyerReference": {
            "$ref": "#/components/schemas/OptionalOfString"
          },
          "orderReference": {
            "$ref": "#/components/schemas/OptionalOfString"
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to update the header of an issued credit note."
      },
      "CreditPaymentDemand": {
        "required": [
          "creditReason"
        ],
        "type": "object",
        "properties": {
          "creditReason": {
            "type": "string",
            "description": "The descriptive reasoning for the credit action."
          },
          "creditTime": {
            "type": "string",
            "description": "The time of creditting time, if not specified will default to the time of command processing",
            "format": "date-time",
            "nullable": true
          },
          "creditDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditPaymentDemandDetail"
            },
            "description": "A collection of details to credit (i.e. remove) from the payment demand.\nIf left empty the demand will be credited entirely. \nIf specified assumes a replacement is to be generated and requires replacementoptions to be included.",
            "nullable": true
          },
          "paymentDemandReplacementOption": {
            "$ref": "#/components/schemas/PaymentDemandReplacementSettings"
          },
          "creditCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditPaymentDemandCharge"
            },
            "description": "A collection of charges to credit (i.e. remove) from the payment demand.",
            "nullable": true
          },
          "creditAllowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreditPaymentDemandAllowance"
            },
            "description": "A collection of allowances to credit (i.e. remove) from the payment demand.",
            "nullable": true
          },
          "billingOptions": {
            "$ref": "#/components/schemas/CreditBillingSettings"
          }
        },
        "additionalProperties": false,
        "description": "Provides information need to credit a payment demand and possibly generate a new demand to replace it."
      },
      "CreditPaymentDemandAllowance": {
        "type": "object",
        "properties": {
          "allowanceId": {
            "type": "string",
            "description": "The identifier of the allowance that should be credited.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A class that contains information about how to credit a specific payment demand allowance."
      },
      "CreditPaymentDemandCharge": {
        "type": "object",
        "properties": {
          "chargeId": {
            "type": "string",
            "description": "The identifier of the charge that should be credited.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A class that contains information about how to credit a specific payment demand charge."
      },
      "CreditPaymentDemandDetail": {
        "type": "object",
        "properties": {
          "detailId": {
            "type": "string",
            "description": "The identifier of the payment demand detail to credit.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount to credit. In case it is null the entire charge will be credited. In case it is not null the remaining amount will be transfered to a new demand.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A class that contains information about how to credit a specific payment demand detail."
      },
      "Currency": {
        "type": "object",
        "properties": {
          "currencyCode": {
            "type": "string",
            "description": "The currency code.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a valid VippsMobilePay Currency, currently only NOK, DKK and EUR are valid types."
      },
      "CurrencyIsoCode": {
        "enum": [
          "ALL",
          "DZD",
          "ARS",
          "AUD",
          "BSD",
          "BHD",
          "BDT",
          "AMD",
          "BBD",
          "BMD",
          "BTN",
          "BOB",
          "BWP",
          "BZD",
          "SBD",
          "BND",
          "MMK",
          "BIF",
          "KHR",
          "CAD",
          "CVE",
          "KYD",
          "LKR",
          "CLP",
          "CNY",
          "COP",
          "KMF",
          "CRC",
          "HRK",
          "CUP",
          "CZK",
          "DKK",
          "DOP",
          "SVC",
          "ETB",
          "ERN",
          "EEK",
          "FKP",
          "FJD",
          "DJF",
          "GMD",
          "GIP",
          "GTQ",
          "GNF",
          "GYD",
          "HTG",
          "HNL",
          "HKD",
          "HUF",
          "ISK",
          "INR",
          "IDR",
          "IRR",
          "IQD",
          "ILS",
          "JMD",
          "JPY",
          "KZT",
          "JOD",
          "KES",
          "KPW",
          "KRW",
          "KWD",
          "KGS",
          "LAK",
          "LBP",
          "LSL",
          "LVL",
          "LRD",
          "LYD",
          "LTL",
          "MOP",
          "MWK",
          "MYR",
          "MVR",
          "MRO",
          "MUR",
          "MXN",
          "MNT",
          "MDL",
          "MAD",
          "OMR",
          "NAD",
          "NPR",
          "ANG",
          "AWG",
          "VUV",
          "NZD",
          "NIO",
          "NGN",
          "NOK",
          "PKR",
          "PAB",
          "PGK",
          "PYG",
          "PEN",
          "PHP",
          "QAR",
          "RUB",
          "RWF",
          "SHP",
          "STD",
          "SAR",
          "SCR",
          "SLL",
          "SGD",
          "VND",
          "SOS",
          "ZAR",
          "SSP",
          "SZL",
          "SEK",
          "CHF",
          "SYP",
          "THB",
          "TOP",
          "TTD",
          "AED",
          "TND",
          "UGX",
          "MKD",
          "EGP",
          "GBP",
          "TZS",
          "USD",
          "UYU",
          "UZS",
          "WST",
          "YER",
          "ZMK",
          "TWD",
          "ZWG",
          "SLE",
          "VED",
          "UYW",
          "VES",
          "MRU",
          "STN",
          "CUC",
          "ZWL",
          "BYN",
          "TMT",
          "GHS",
          "VEF",
          "SDG",
          "UYI",
          "RSD",
          "MZN",
          "AZN",
          "RON",
          "CHE",
          "CHW",
          "TRY",
          "XAF",
          "XCD",
          "XOF",
          "XPF",
          "XBA",
          "XBB",
          "XBC",
          "XBD",
          "XAU",
          "XDR",
          "XAG",
          "XPT",
          "XTS",
          "XPD",
          "XUA",
          "ZMW",
          "SRD",
          "MGA",
          "COU",
          "AFN",
          "TJS",
          "AOA",
          "BYR",
          "BGN",
          "CDF",
          "BAM",
          "EUR",
          "MXV",
          "UAH",
          "GEL",
          "BOV",
          "PLN",
          "BRL",
          "CLF",
          "XSU",
          "USN",
          "USS",
          "XXX"
        ],
        "type": "string"
      },
      "CustomerProfile": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The customer display name passed to Mollie. Optional — Mollie allows customers with no name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The customer email address passed to Mollie. Optional — Mollie allows customers with no email.",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "description": "Optional Mollie locale (e.g. `nl_NL`).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Profile data used to create a Mollie customer if one does not already exist for the\nsubscriber starting mandate registration."
      },
      "CustomerResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The platform customer identifier.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "The Mollie account this customer belongs to.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The platform subscriber identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The customer display name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The customer email address.",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "description": "The optional Mollie locale (e.g. `nl_NL`).",
            "nullable": true
          },
          "mollieCustomerId": {
            "type": "string",
            "description": "The Mollie customer identifier (`cst_…`)."
          },
          "createdAt": {
            "type": "string",
            "description": "The timestamp when this customer was created.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Response payload for customer read operations."
      },
      "DayOfWeek": {
        "enum": [
          "Sunday",
          "Monday",
          "Tuesday",
          "Wednesday",
          "Thursday",
          "Friday",
          "Saturday"
        ],
        "type": "string"
      },
      "DeliveriesExportSettings": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DeliveriesExportSettingsBase"
          }
        ],
        "additionalProperties": false,
        "description": "The deliveries export settings."
      },
      "DeliveriesExportSettingsBase": {
        "type": "object",
        "properties": {
          "distributionDate": {
            "type": "string",
            "description": "Get or set the distribution date.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The base class for deliveries export settings."
      },
      "DeliveryAddress": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "region": {
            "type": "string",
            "description": "Gets or sets the region.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the phone.",
            "nullable": true
          },
          "municipality": {
            "type": "string",
            "description": "Gets or sets the municipality.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the mail.",
            "nullable": true
          },
          "addressLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the various adress lines."
          },
          "careOf": {
            "type": "string",
            "description": "Gets or sets the CareOf property.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A delivery address."
      },
      "DeliveryConfigurationCreate": {
        "type": "object",
        "properties": {
          "allowMultipleDeliveries": {
            "type": "boolean",
            "description": "Gets or sets the allowance of multiple deliveries for one product."
          }
        },
        "additionalProperties": false,
        "description": "Represents a create contract of delivery configuration."
      },
      "DeliveryConfigurationView": {
        "type": "object",
        "properties": {
          "allowMultipleDeliveries": {
            "type": "boolean",
            "description": "Gets or sets the allowance of multiple deliveries for one product."
          }
        },
        "additionalProperties": false,
        "description": "Represents a view contract of delivery configuration."
      },
      "DeliveryEnd": {
        "type": "object",
        "properties": {
          "endTime": {
            "type": "string",
            "description": "Gets or sets the end time of the delivery.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Represents a delivery end."
      },
      "DeliveryExport": {
        "type": "object",
        "properties": {
          "startDelivery": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the start delivery.",
            "format": "date-time"
          },
          "lastChanged": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the last changed.",
            "format": "date-time"
          },
          "stopDelivery": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the stop delivery.",
            "format": "date-time"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "address1": {
            "type": "string",
            "description": "Gets or sets the address 1."
          },
          "address2": {
            "type": "string",
            "description": "Gets or sets the address 2."
          },
          "address3": {
            "type": "string",
            "description": "Gets or sets the address 3."
          },
          "address4": {
            "type": "string",
            "description": "Gets or sets the address 4."
          },
          "address5": {
            "type": "string",
            "description": "Gets or sets the address 5."
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code."
          },
          "region": {
            "type": "string",
            "description": "Gets or sets the region."
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city."
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country."
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the phone."
          },
          "eMail": {
            "type": "string",
            "description": "Gets or sets the mail."
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A delivery export."
      },
      "DeliveryIdTypePair": {
        "type": "object",
        "properties": {
          "deliveryId": {
            "type": "string",
            "description": "Gets or sets the identifier of the delivery.",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "Get or set the type of the distribution innovation.",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "Get or set the start date of the distribution innovation.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The pair of delivery identifier and type."
      },
      "DeliveryMatrixCreate": {
        "required": [
          "name",
          "weekDays"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name of the delivery matrix."
          },
          "weekDays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "description": "Gets or sets the days of the delivery matrix."
          }
        },
        "additionalProperties": false,
        "description": "Represents a create contract of delivery matrix."
      },
      "DeliveryMatrixUpdate": {
        "required": [
          "weekDays"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets the name of the delivery matrix."
          },
          "weekDays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "description": "Gets the days of the delivery matrix."
          }
        },
        "additionalProperties": false,
        "description": "Represents a update contract of delivery matrix."
      },
      "DeliveryMatrixView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier of the delivery matrix.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets the name of the delivery matrix."
          },
          "weekDays": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DayOfWeek"
            },
            "description": "Gets the days of the delivery matrix."
          }
        },
        "additionalProperties": false,
        "description": "Represents a view contract of delivery matrix."
      },
      "DeliveryStart": {
        "required": [
          "address",
          "organizationId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier of the delivery.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets identifier of the subscriber that this delivery is associated with.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product to be delivered.",
            "format": "uuid"
          },
          "startTime": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the start delivery.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the stop delivery.",
            "format": "date-time",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/DeliveryAddress"
          },
          "units": {
            "type": "integer",
            "description": "The number of units.",
            "format": "int32"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "subscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "format": "uuid",
            "nullable": true
          },
          "sourceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the delivery source.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a delivery start."
      },
      "DeliveryView": {
        "required": [
          "address"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier of the delivery.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets identifier of the subscriber that this delivery is associated with.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product to be delivered.",
            "format": "uuid"
          },
          "startTime": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the start delivery.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the stop delivery.",
            "format": "date-time",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/DeliveryAddress"
          },
          "units": {
            "type": "integer",
            "description": "The number of units.",
            "format": "int32"
          },
          "divisionResultCount": {
            "type": "integer",
            "description": "The count of the results of address division.",
            "format": "int32"
          },
          "deliveryMatrix": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DeliveryMatrixView"
              },
              {
                "$ref": "#/components/schemas/ProductDeliveryMatrixView"
              }
            ],
            "description": "The delivery matrix assosiated with product."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "sourceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the delivery source.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A delivery view."
      },
      "DemandAllowance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the allowance.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount disconted/subtracted from the demand.",
            "format": "double"
          },
          "startTime": {
            "type": "string",
            "description": "An optional start time.",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "An optional end time this covers.",
            "format": "date-time",
            "nullable": true
          },
          "sourcePaymentDemandId": {
            "type": "string",
            "description": "The identifier of the source payment demand where this transaction stems from.",
            "format": "uuid",
            "nullable": true
          },
          "allowanceType": {
            "$ref": "#/components/schemas/AllowanceType"
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating whether the allowance was previously included in ledger somehow."
          },
          "originalAccountingTime": {
            "type": "string",
            "description": "The original accounting time of the charge, if available.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an extra/additional allowance added to a demand."
      },
      "DemandCharge": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the charge.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount charged on the demand.",
            "format": "double"
          },
          "startTime": {
            "type": "string",
            "description": "An optional start time.",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "An optional end time this covers.",
            "format": "date-time",
            "nullable": true
          },
          "sourcePaymentDemandId": {
            "type": "string",
            "description": "The identifier of the source payment demand where this transaction stems from.",
            "format": "uuid",
            "nullable": true
          },
          "chargeType": {
            "$ref": "#/components/schemas/ChargeType"
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating whether the charge was previously included in ledger somehow."
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetailView"
            },
            "description": "The tax details for the charge."
          },
          "originalAccountingTime": {
            "type": "string",
            "description": "The original accounting time of the charge, if available.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an extra/additional charge added to a demand."
      },
      "DemandReminderSchedule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the demand reminder schedule.",
            "format": "uuid"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "The Payment Demand to create a reminder for.",
            "format": "uuid"
          },
          "billingPlanId": {
            "type": "string",
            "description": "The billing plan that was used to define this schedule.",
            "format": "uuid"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The subscription the demand and reminder is associated with (if any).",
            "format": "uuid",
            "nullable": true
          },
          "paymentProviderType": {
            "type": "string",
            "description": "The provider type."
          },
          "time": {
            "type": "string",
            "description": "The scheduled reminder execution/generation time.",
            "format": "date-time"
          },
          "reminderCounter": {
            "type": "integer",
            "description": "Reminder counter.",
            "format": "int32"
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber the demand and reminder relates to.",
            "format": "uuid"
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "The enterprise plan identifier the schedule is relevant for (if any).",
            "format": "uuid",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "description": "The order this schedule is relevant for (if any).",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The organizationId the reminder relates to.",
            "format": "uuid",
            "nullable": true
          },
          "originalScheduleTime": {
            "type": "string",
            "description": "Gets or sets the original schedule time.",
            "format": "date-time",
            "nullable": true
          },
          "rescheduleReason": {
            "type": "string",
            "description": "Gets or sets the reason of reschedule.",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The caclculated due date of the reminder when it is generated.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Schedule information for when to generate a new reminder."
      },
      "DemandSchedule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the billing plan identifier",
            "format": "uuid"
          },
          "subscriptionId": {
            "type": "string",
            "description": "Gets or sets the subscription identifier",
            "format": "uuid",
            "nullable": true
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier",
            "format": "uuid"
          },
          "paymentMethod": {
            "type": "string",
            "description": "Gets or sets the payment method"
          },
          "paymentMethodType": {
            "type": "string",
            "description": "Gets or sets the payment method type"
          },
          "time": {
            "type": "string",
            "description": "Gets or sets the demand generation time",
            "format": "date-time"
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the enterprise plan identifier",
            "format": "uuid",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "description": "Gets or sets the order identifier",
            "format": "uuid",
            "nullable": true
          },
          "preliminaryDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the preliminary demand.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets OrganizationId identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A demand schedule."
      },
      "DemandType": {
        "enum": [
          "Unknown",
          "Account",
          "Order",
          "Subscription",
          "EnterprisePlan"
        ],
        "type": "string",
        "description": "Values that represent demand types."
      },
      "DenialOrderConfigurationCreate": {
        "required": [
          "currency"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "balanceLimit": {
            "type": "number",
            "description": "Gets or sets the balance limit. Balance limit is set as a positive but evaluated as a\nnegative (i.e. the subscribers balance cannot exceed the negative of the value set here).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "The denial order configuration create."
      },
      "DenialOrderConfigurationUpdate": {
        "type": "object",
        "properties": {
          "balanceLimit": {
            "type": "number",
            "description": "Gets or sets the balance limit. Balance limit is set as a positive but evaluated as a\nnegative (i.e. the subscribers balance cannot exceed the negative of the value set here).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "The denial order configuration update."
      },
      "DenialOrderConfigurationView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "balanceLimit": {
            "type": "number",
            "description": "Gets or sets the balance limit. Balance limit is set as a\n           positive but evaluated as a negative (i.e. the subscribers balance cannot\n           exceed the negative of the value set here).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A denial order configuration view."
      },
      "DenialOrderCreate": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the organization identifier.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/DenialOrderType"
          },
          "expires": {
            "type": "string",
            "description": "An optional expiration date.",
            "format": "date-time",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "Gets or sets the reason. Reason why this denial order was added",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An denial order create."
      },
      "DenialOrderType": {
        "enum": [
          "Amount",
          "Offer"
        ],
        "type": "string",
        "description": "Values that represent denial order types."
      },
      "DenialOrderView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the organization identifier.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/DenialOrderType"
          },
          "expires": {
            "type": "string",
            "description": "An optional expiration date.",
            "format": "date-time",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "Gets or sets the reason. Reason why this denial order was added.",
            "nullable": true
          },
          "timestamp": {
            "type": "string",
            "description": "Gets or sets the timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A denial order view."
      },
      "Deviation": {
        "type": "object",
        "properties": {
          "fromDate": {
            "type": "string",
            "description": "The start date.",
            "format": "date-time",
            "nullable": true
          },
          "toDate": {
            "type": "string",
            "description": "The end date.",
            "format": "date-time",
            "nullable": true
          },
          "estimatedFinishTime": {
            "type": "string",
            "description": "The estimated finish type.",
            "format": "date-time",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The Type."
          },
          "distribution": {
            "type": "string",
            "description": "The distribution."
          },
          "description": {
            "type": "string",
            "description": "The description."
          },
          "product": {
            "type": "string",
            "description": "The product."
          },
          "mainCode": {
            "type": "string",
            "description": "The main code."
          },
          "subCode": {
            "type": "string",
            "description": "The sub code."
          },
          "textCode": {
            "type": "string",
            "description": "The text code."
          },
          "textCodeExternal": {
            "type": "string",
            "description": "The text code external."
          }
        },
        "additionalProperties": false,
        "description": "A deviation."
      },
      "Distribution": {
        "type": "object",
        "properties": {
          "deliveryPointId": {
            "type": "integer",
            "description": "The DI delivery point identifier.",
            "format": "int32",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/AddressInfo"
          }
        },
        "additionalProperties": false,
        "description": "A distribution."
      },
      "DistributionExportView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier of the distribution export",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the organization identifier.",
            "format": "uuid"
          },
          "fileType": {
            "$ref": "#/components/schemas/FileType"
          },
          "provider": {
            "$ref": "#/components/schemas/Provider"
          },
          "distributionDate": {
            "type": "string",
            "description": "Gets or sets the distribution date.",
            "format": "date-time"
          },
          "productionTime": {
            "type": "string",
            "description": "Gets or sets the production time.",
            "format": "date-time"
          },
          "cancellationTime": {
            "type": "string",
            "description": "Gets or sets the cancellation time.",
            "format": "date-time",
            "nullable": true
          },
          "produced": {
            "type": "boolean",
            "description": "Gets a value indicating whether this Infosoft.S4.Api.DataContracts.V1.Delivery.DistributionExportView is produced.",
            "readOnly": true
          },
          "cancelled": {
            "type": "boolean",
            "description": "Gets a value indicating whether this Infosoft.S4.Api.DataContracts.V1.Delivery.DistributionExportView is cancelled.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a view contract of distribution innovation configuration."
      },
      "DocumentNetworkLookupRequest": {
        "required": [
          "network",
          "value"
        ],
        "type": "object",
        "properties": {
          "network": {
            "type": "string",
            "description": "Define the network to do a lookup in, must be an ICD Value from the ISO6523 codelist (https://docs.peppol.eu/poacc/billing/3.0/codelist/ICD/)."
          },
          "value": {
            "type": "string",
            "description": "The value to lookup, like the Organization Number, the GLN, the CVR or similar."
          }
        },
        "additionalProperties": false,
        "description": "Request properties to do a lookup for Invoice Document support in PEPPOL."
      },
      "DocumentNetworkLookupResponse": {
        "type": "object",
        "properties": {
          "documentTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of PEPPOL related document types aggregated across networks."
          }
        },
        "additionalProperties": false,
        "description": "Prpoerties returned for a successful network lookup response."
      },
      "DocumentType": {
        "enum": [
          "Invoice",
          "CreditNote",
          "All"
        ],
        "type": "string",
        "description": "Values that represent file generation type."
      },
      "DomainAuthorization": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "domainName": {
            "type": "string",
            "description": "Gets or sets the domain name."
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The domain authorization"
      },
      "DomainAuthorizationCreate": {
        "required": [
          "domainName"
        ],
        "type": "object",
        "properties": {
          "domainName": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the domain name."
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The domain authorization create"
      },
      "DunningProcess": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "contractSurchargeBillingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the contract surcharge billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderSettings"
            },
            "description": "Get or set the list of reminder settings views.",
            "nullable": true
          },
          "stopRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StopRuleView"
            },
            "description": "Gets or sets the stop rules.",
            "nullable": true
          },
          "paymentRequestSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRequestSettings"
            },
            "description": "The list of payment request settings for this dunning process.",
            "nullable": true
          },
          "reminderPolicy": {
            "$ref": "#/components/schemas/ReminderPolicy"
          },
          "settlementPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.FixedAmountDifferencePolicy"
              },
              {
                "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.PercentOfDemandPolicy"
              }
            ],
            "description": "The settlement policy if configured (defaults to 100% if not defined).",
            "nullable": true
          },
          "cancellationProrationPolicyId": {
            "type": "string",
            "description": "The identifier of the cancellation proration policy.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A dunning process."
      },
      "DunningProcessCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "contractSurchargeBillingPlanId": {
            "type": "string",
            "description": "The contract surcharge billing plan to use. If omitted the original billing plan will be used.",
            "format": "uuid",
            "nullable": true
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderSettingsCreate"
            },
            "description": "A list of reminder settings.",
            "nullable": true
          },
          "settlementPolicy": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.FixedAmountDifferencePolicy"
              },
              {
                "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.PercentOfDemandPolicy"
              }
            ],
            "description": "An optional settlement policy. If omitted the default will be used.",
            "nullable": true
          },
          "reminderPolicy": {
            "$ref": "#/components/schemas/ReminderPolicy"
          },
          "cancellationProration": {
            "type": "string",
            "description": "An optional proration policy for proration during cancellations. If omitted the defaults will be used.",
            "format": "uuid",
            "nullable": true
          },
          "requestSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRequestSettingsCreate"
            },
            "description": "A list of payment request settings.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating a new instance of a dunning process."
      },
      "DunningProcessQuery": {
        "type": "object",
        "additionalProperties": false,
        "description": "The dunning process filter query."
      },
      "DunningProcessUpdate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "contractSurchargeBillingPlanId": {
            "type": "string",
            "description": "An optional custom billing plan to use for contract surcharge billing.",
            "format": "uuid",
            "nullable": true
          },
          "reminderPolicy": {
            "$ref": "#/components/schemas/ReminderPolicy"
          },
          "cancellationProration": {
            "type": "string",
            "description": "An optional proration policy for proration during cancellations. If omitted the defaults will be used.",
            "format": "uuid",
            "nullable": true
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderSettingsCreate"
            },
            "description": "A list of reminder settings.",
            "nullable": true
          },
          "requestSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRequestSettingsCreate"
            },
            "description": "A list of payment request settings.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The dunning process update."
      },
      "EFakturaAgreementCreate": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Get or set the account identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "eFakturaIdentifier": {
            "type": "string",
            "description": "Get or set the eFaktura identifier."
          },
          "createdOn": {
            "type": "string",
            "description": "Get or set the date of creation/import.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an eFaktura agreement."
      },
      "EFakturaAgreementView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier.",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountView"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "eFakturaIdentifier": {
            "type": "string",
            "description": "Get or set the eFaktura identifier."
          },
          "deactivated": {
            "type": "boolean",
            "description": "Get or set the indicator that mandate deleted."
          },
          "createdOn": {
            "type": "string",
            "description": "Get or set the date of creation/import.",
            "format": "date-time"
          },
          "cancelledOn": {
            "type": "string",
            "description": "Get or set the date of the cancellation.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an eFaktura agreement."
      },
      "EFakturaInvoice": {
        "type": "object",
        "properties": {
          "dueDate": {
            "type": "string",
            "description": "Gets the date date.",
            "format": "date-time"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EFakturaInvoiceLine"
            },
            "description": "Gets or sets the specification of the invoice"
          },
          "taxAmount": {
            "type": "number",
            "description": "Gets the total tax amount",
            "format": "double"
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the invoice description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The eFaktura invoice class."
      },
      "EFakturaInvoiceLine": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets the name"
          },
          "description": {
            "type": "string",
            "description": "Gets the description",
            "nullable": true
          },
          "itemIdentification": {
            "type": "string",
            "description": "Gets the the identification of the line",
            "nullable": true
          },
          "price": {
            "type": "number",
            "description": "Gets the price",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "description": "Gets the tax amount",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "description": "Gets the amount",
            "format": "double"
          },
          "taxPercent": {
            "type": "number",
            "description": "Gets the tax percentage",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "Gets the number of items",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "The eFaktura invoice line class."
      },
      "EFakturaTransactionCreate": {
        "type": "object",
        "properties": {
          "agreementId": {
            "type": "string",
            "description": "Get or set the agreement identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "The DueDate, assumed to be local to the Norwegian timezone. Any time parts specified will be ignored.",
            "format": "date-time"
          },
          "transactionTextLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Get or set the transaction text lines."
          },
          "kid": {
            "pattern": "^\\d+$",
            "type": "string",
            "description": "An optional KID."
          },
          "invoice": {
            "$ref": "#/components/schemas/EFakturaInvoice"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set organization",
            "format": "uuid"
          },
          "taxAmount": {
            "type": "number",
            "description": "Get or set the tax amount.",
            "format": "double"
          },
          "taxPercent": {
            "type": "number",
            "description": "Get or set the tax percent.",
            "format": "double",
            "nullable": true
          },
          "taxableAmount": {
            "type": "number",
            "description": "Get or set the taxable amount.",
            "format": "double",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "description": "Get or set invoice number"
          },
          "receiverName": {
            "type": "string",
            "description": "Get or set receiver name"
          },
          "receiverAddress": {
            "$ref": "#/components/schemas/Infosoft.S4.AvtaleGiro.Contracts.PostalAddress"
          },
          "subscriberNumber": {
            "type": "string",
            "description": "Get or set subscriber number"
          }
        },
        "additionalProperties": false,
        "description": "Class represents an eFaktura transaction."
      },
      "EFakturaTransactionView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the transaction identifier",
            "format": "uuid"
          },
          "agreement": {
            "$ref": "#/components/schemas/EFakturaAgreementView"
          },
          "externalTransactionId": {
            "type": "string",
            "description": "Get or set the external transaction identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "Get or set the due date.",
            "format": "date-time"
          },
          "transactionTextLines": {
            "type": "string",
            "description": "Get or set the transaction text lines."
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Get or set the transaction cencellation."
          },
          "kid": {
            "type": "string",
            "description": "Gets or sets the kid."
          },
          "invoice": {
            "$ref": "#/components/schemas/EFakturaInvoice"
          }
        },
        "additionalProperties": false,
        "description": "Class represents an eFaktura transaction."
      },
      "EPayment": {
        "required": [
          "reference",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The internal INFO-Subscription identifier for the payment.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "The identifier of the account the payment belongs to.",
            "format": "uuid"
          },
          "reference": {
            "type": "string",
            "description": "The reference as sent to VippsMobile, given during initialization of the payment."
          },
          "amount": {
            "type": "integer",
            "description": "The amount value for the payment in the lowest denomination.",
            "format": "int64"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "redirectUrl": {
            "type": "string",
            "description": "The redirect Url the payment was initialized with.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The current state, most often reflects the state in VippsMobilePay."
          },
          "targetCaptureTime": {
            "type": "string",
            "description": "If target capture time is set, an attempt will be made to capture the payment automatically sometime after the capture time has passed.\n\n\nTypically use this for Invoices to be captured at a known Due Date for instance.",
            "format": "date-time",
            "nullable": true
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Accounting"
          },
          "refundedOn": {
            "type": "string",
            "description": "Gets or sets the refunded on.",
            "format": "date-time",
            "nullable": true
          },
          "cancelledOn": {
            "type": "string",
            "description": "Gets or sets the cancelled on.",
            "format": "date-time",
            "nullable": true
          },
          "capturedOn": {
            "type": "string",
            "description": "Gets or sets the captured on.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents an epayment for VippsMobile pay. They differ from Charges in that they are non-recurring and each one requires user interaction."
      },
      "EPaymentResult": {
        "required": [
          "amount",
          "currency",
          "reference",
          "state"
        ],
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "description": "The current state."
          },
          "reference": {
            "type": "string",
            "description": "The reference for the payment."
          },
          "amount": {
            "type": "integer",
            "description": "The amount.",
            "format": "int64"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "paymentMethod": {
            "type": "string",
            "description": "The payment method (WALLET or CARD).",
            "nullable": true
          },
          "redirectUrl": {
            "type": "string",
            "description": "The original redirect URl if any.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A wrapper for an EPayment as returned by the VippsMobilePay API. Some properties have been excluded for simplicity."
      },
      "EhfConfiguration": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "enabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is enabled."
          },
          "accesspointId": {
            "type": "string",
            "description": "Gets or sets the identifier of the accesspoint.",
            "nullable": true
          },
          "bankAccountNumber": {
            "type": "string",
            "description": "Gets or sets the bank account number.",
            "nullable": true
          },
          "organizationNumber": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "nullable": true
          },
          "timeZoneId": {
            "type": "string",
            "description": "Gets or sets the identifier of the time zone.",
            "nullable": true
          },
          "customerPartyLegalName": {
            "type": "string",
            "description": "Gets or sets the customer party legal name.",
            "nullable": true
          },
          "customerPartyIdentification": {
            "type": "string",
            "description": "Gets or sets the customer party identifier.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "EHF configuration."
      },
      "EmailDomainAuthorizationSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the source.",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user.",
            "format": "uuid"
          },
          "domainAuthorization": {
            "$ref": "#/components/schemas/DomainAuthorization"
          }
        },
        "additionalProperties": false,
        "description": "The email domain authorization source model"
      },
      "EmailDomainAuthorizationSourceCreate": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user.",
            "format": "uuid"
          },
          "domainAuthorizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the domain authorization.",
            "format": "uuid",
            "nullable": true
          },
          "domainName": {
            "type": "string",
            "description": "Gets or sets the domain name.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The create source"
      },
      "EnterprisePlanCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The human readable name of the plan."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "A textual description of the plan.",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization this enterprise plan is related to.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber that owns this Enterprise Plan.",
            "format": "uuid"
          },
          "billingAlignment": {
            "$ref": "#/components/schemas/BillingAlignment"
          },
          "payerContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payer contact.",
            "format": "uuid",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An enterprise plan create."
      },
      "EnterprisePlanDemandView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentDemandView"
          }
        ],
        "additionalProperties": false,
        "description": "An account payment demand view."
      },
      "EnterprisePlanLedgerView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/LedgerBaseView"
          }
        ],
        "properties": {
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "An enterprise plan ledger view."
      },
      "EnterprisePlanUpdate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The human readable name of the plan."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "An optional textual description of the enterprise plan.",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An enterprise plan update."
      },
      "EnterprisePlanView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "billingAlignment": {
            "$ref": "#/components/schemas/BillingAlignment"
          },
          "payerContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payer contact.",
            "format": "uuid",
            "nullable": true
          },
          "activatedTime": {
            "type": "string",
            "description": "Gets or sets the activated time.",
            "format": "date-time",
            "nullable": true
          },
          "expiredTime": {
            "type": "string",
            "description": "Gets or sets the expire time.",
            "format": "date-time",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid",
            "nullable": true
          },
          "providerType": {
            "type": "string",
            "description": "Gets or sets the provider type.",
            "nullable": true
          },
          "paymentMethod": {
            "type": "string",
            "description": "Gets or sets the provider method.",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An enterprise plan view."
      },
      "EventCampaign": {
        "required": [
          "text"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Campaign"
          }
        ],
        "properties": {
          "end": {
            "type": "string",
            "description": "The end time of the campaign.",
            "format": "date-time"
          },
          "text": {
            "type": "string",
            "description": "The campaign text displayed in the app."
          }
        },
        "additionalProperties": false,
        "description": "An event campaign."
      },
      "ExceptionContract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "isExcluded": {
            "type": "boolean",
            "description": "Get or set the exclusion state"
          },
          "specialDate": {
            "type": "string",
            "description": "Get or set the special date",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "An exception contract."
      },
      "ExceptionView": {
        "type": "object",
        "properties": {
          "isExcluded": {
            "type": "boolean",
            "description": "Get or set the exclusion state"
          },
          "specialDate": {
            "type": "string",
            "description": "Get or set the special date",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "An exception view."
      },
      "ExternalReferences": {
        "type": "object",
        "properties": {
          "operationReference": {
            "type": "string",
            "description": "An optional reference to the current operation.",
            "nullable": true
          },
          "payerReference": {
            "type": "string",
            "description": "An optional reference identifying the Payer/Subscriber/User.",
            "nullable": true
          },
          "agreementReference": {
            "type": "string",
            "description": "An optional reference identifying the agreement.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A record for keeping various external references."
      },
      "ExternalStaticProductSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the source.",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name of the source (like the name of the external system)"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the products identifiers"
          }
        },
        "additionalProperties": false,
        "description": "Account source model"
      },
      "ExternalStaticProductSourceCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Get or set the user identifier",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Name of the source (like the name of the external system)"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the products identifiers"
          }
        },
        "additionalProperties": false,
        "description": "The create source command"
      },
      "ExternalStaticProductSourceUpdate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the source (like the name of the external system)"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the products identifiers"
          }
        },
        "additionalProperties": false,
        "description": "The create source command"
      },
      "FileCategory": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "File category identifier",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "File category name",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A file category"
      },
      "FileRecordView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the file identifier.",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "description": "Get or set the state of the export."
          },
          "fileId": {
            "type": "string",
            "description": "Get or set the file identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The create distribution innovation file record."
      },
      "FileType": {
        "enum": [
          "ChangedDeliveries",
          "TotalDeliveries",
          "NewComplaints"
        ],
        "type": "string",
        "description": "File type."
      },
      "FileView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The File Identifier",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The name of the file",
            "nullable": true
          },
          "category": {
            "$ref": "#/components/schemas/FileCategory"
          },
          "added": {
            "type": "string",
            "description": "Time for when the file was added to storage",
            "format": "date-time"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization id",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "The file type"
          },
          "rootFolder": {
            "type": "string",
            "description": "The root folder"
          }
        },
        "additionalProperties": false,
        "description": "A blob file view"
      },
      "FileViewWithUrl": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/FileView"
          }
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "The File Url"
          }
        },
        "additionalProperties": false,
        "description": "A blob file view with Url"
      },
      "HttpValidationProblemDetails": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProblemDetails"
          }
        ],
        "properties": {
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": { }
      },
      "IdResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The wrapped identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Represents an Id for an object. Typically the Location of the object is available in the Location header."
      },
      "Identification": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Gets or sets the type of the identification such as a GLN, ORGNR, CVR, CPR, Internal or whatever"
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value of the identification. Depending on the type this can have various formats"
          }
        },
        "additionalProperties": false,
        "description": "An identification."
      },
      "IdentificationCreate": {
        "required": [
          "organizationId",
          "type"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the type."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An identification create."
      },
      "IdentificationView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "IdentifierOrganizationConfiguration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier.",
            "format": "uuid"
          },
          "prefix": {
            "type": "string",
            "description": "Gets the prefix."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets the identifier of the organization.",
            "format": "uuid"
          },
          "providerId": {
            "type": "string",
            "description": "Gets the identifier of the provider.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Organization's configuration for generating a external invoice id."
      },
      "IdentifierProviderConfiguration": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the identifier.",
            "format": "uuid"
          },
          "length": {
            "type": "integer",
            "description": "Gets the length.",
            "format": "int32",
            "nullable": true
          },
          "customerNumberPosition": {
            "type": "integer",
            "description": "Gets the customer number position.",
            "format": "int32",
            "nullable": true
          },
          "checkDigitAlgorithm": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Invoice.CheckDigitAlgorithm"
          },
          "providerType": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Invoice.PaymentProvider"
          }
        },
        "additionalProperties": false,
        "description": "An identifier provider configuration."
      },
      "IdentityProvider": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the identity provider.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "integrationType": {
            "$ref": "#/components/schemas/IntegrationType"
          }
        },
        "additionalProperties": false,
        "description": "The identity provider"
      },
      "IdentityProviderAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the identity provider.",
            "format": "uuid"
          },
          "credentials": {
            "$ref": "#/components/schemas/UserClaimsCredentials"
          },
          "productsAttributeName": {
            "type": "string",
            "description": "Gets or sets the products attribute name."
          },
          "subscriberIdAttributeName": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier attribute name."
          }
        },
        "additionalProperties": false,
        "description": "The identity provider account"
      },
      "IdentityProviderCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "integrationType": {
            "$ref": "#/components/schemas/IntegrationType"
          }
        },
        "additionalProperties": false,
        "description": "The identity provider create"
      },
      "IdentityProviderUser": {
        "required": [
          "objectId"
        ],
        "type": "object",
        "properties": {
          "objectId": {
            "minLength": 1,
            "type": "string",
            "description": "The identifier of the user as given in the IdP."
          }
        },
        "additionalProperties": false,
        "description": "Represents an identity provider user."
      },
      "ImportAgreement": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The Account Identifier the agreement should be associated with..",
            "format": "uuid"
          },
          "vippsAgreementId": {
            "type": "string",
            "description": "The Agreement Identifier as defined by Vipps. Typically following the form agr_ABC123."
          },
          "subscriberId": {
            "type": "string",
            "description": "The Subscriber that the imported agreement should be connected to.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Represents parameters for an agreement to be imported."
      },
      "ImportSummary": {
        "type": "object",
        "properties": {
          "assignments": {
            "type": "integer",
            "description": "The number of assignments processed.",
            "format": "int32"
          },
          "mandateOrders": {
            "type": "integer",
            "description": "The number of Mandate Orders/Groups processed.",
            "format": "int32"
          },
          "mandates": {
            "type": "integer",
            "description": "The number of Mandates processed - if an order/group is skipped, the mandates nested within are not summarized.",
            "format": "int32"
          },
          "transactions": {
            "type": "integer",
            "description": "The number of Transactions processed as payments - if an assignment is skipped, the Transactions nested within are not summarized.",
            "format": "int32"
          },
          "transactionsAmount": {
            "type": "number",
            "description": "The total amount of processed transactions - if an assignment is skipped, the Transactions nested within are not summarized.",
            "format": "double"
          },
          "transmissions": {
            "type": "integer",
            "description": "The number of transmissions - typically only 1.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Defines summary properties for a Payment Import Processing result."
      },
      "IncludedAdditionalProduct": {
        "type": "object",
        "properties": {
          "templatePackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the template package.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the product identifier.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the number of units.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A included additional product."
      },
      "Infosoft.S4.Api.DataContracts.V1.Contract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the contract.",
            "format": "uuid",
            "nullable": true
          },
          "contractDate": {
            "type": "string",
            "description": "Gets or sets the contract date.",
            "format": "date-time",
            "nullable": true
          },
          "surchargeType": {
            "$ref": "#/components/schemas/ContractSurchargeType"
          },
          "surchargeAmount": {
            "type": "number",
            "description": "Gets or sets the surcharge amount.",
            "format": "double",
            "nullable": true
          },
          "surchargeTaxPercent": {
            "type": "number",
            "description": "Gets or sets the contract surcharge tax percent.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A contract."
      },
      "Infosoft.S4.Api.DataContracts.V1.Identification": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Gets or sets the type of the identification such as a GLN, ORGNR, CVR, CPR, Internal or whatever."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value of the identification. Depending on the type this can have various formats."
          }
        },
        "additionalProperties": false,
        "description": "An identification."
      },
      "Infosoft.S4.Api.DataContracts.V1.Invoice.CheckDigitAlgorithm": {
        "enum": [
          "Modulus10",
          "Modulus11"
        ],
        "type": "string",
        "description": "Values that represent check digit algorithms."
      },
      "Infosoft.S4.Api.DataContracts.V1.Invoice.PaymentProvider": {
        "enum": [
          "Default",
          "NetsNorway",
          "NetsDenmark",
          "Bankgirot"
        ],
        "type": "string",
        "description": "Values that represent payment/invoice providers."
      },
      "Infosoft.S4.Api.DataContracts.V1.Order.OrderTag": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the values."
          }
        },
        "additionalProperties": false,
        "description": "The order tag.\nThe entity that is used to store various types (TagType) of values ​​in a reporting service."
      },
      "Infosoft.S4.Api.DataContracts.V1.Order.OrderView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "templatePackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the template package.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "templatePackageChoices": {
            "$ref": "#/components/schemas/TemplatePackageChoices"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "Gets or sets the status.",
            "nullable": true
          },
          "terminalRedirectUrl": {
            "type": "string",
            "description": "Gets or sets URL of the terminal redirect.",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "Gets or sets the payment provider transaction if one is associated with the order.",
            "format": "uuid",
            "nullable": true
          },
          "agreementReference": {
            "type": "string",
            "description": "Gets or sets the agreement reference.",
            "nullable": true
          },
          "orderCreated": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order created.",
            "format": "date-time"
          },
          "orderCompleted": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order completed.",
            "format": "date-time",
            "nullable": true
          },
          "orderCancelled": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order cancelled.",
            "format": "date-time",
            "nullable": true
          },
          "externalSubscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the external subscriber.",
            "nullable": true
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "description": "Gets or sets the identifier of the resulting subscription.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Gets or sets the identifier of the related payment.",
            "format": "uuid",
            "nullable": true
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.PaymentMethods"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice contact.",
            "format": "uuid",
            "nullable": true
          },
          "tag": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Order.OrderTag"
          },
          "settleAccountBalance": {
            "type": "boolean",
            "description": "Should this order settle existing account balance when when billed."
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          },
          "planSourceType": {
            "type": "string",
            "description": "Gets or sets the plan source type indicating how the final plan was resolved.",
            "nullable": true
          },
          "subscriptionPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscription plan when resolved to an existing or inline plan.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An order view."
      },
      "Infosoft.S4.Api.DataContracts.V1.PaymentMethods": {
        "enum": [
          "Invoice",
          "Vipps",
          "AvtaleGiro",
          "Email",
          "EHF",
          "MobilePay",
          "OIO",
          "SwedbankPay",
          "BetalingsService",
          "Autogiro",
          "eFaktura",
          "Mollie"
        ],
        "type": "string",
        "description": "Gets the payment methods."
      },
      "Infosoft.S4.AvtaleGiro.Contracts.PostalAddress": {
        "type": "object",
        "properties": {
          "addressLine1": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string"
          },
          "zipCode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Infosoft.S4.Billing.Contracts.Api.Allowance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the charge.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount.",
            "format": "double"
          },
          "accountingTime": {
            "type": "string",
            "description": "The accounting time of the transaction (i.e. when is it effective from).",
            "format": "date-time"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand that caused this transaction (if a demand was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice (if a demand and invoice was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "The invoice number if it exists (if a demand and invoice was involved).",
            "format": "int64",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "The optional identifier of the payment that caused this transaction (if a payment was involved).",
            "format": "uuid",
            "nullable": true
          },
          "transactionType": {
            "$ref": "#/components/schemas/AllowanceType"
          },
          "startTime": {
            "type": "string",
            "description": "The start time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "The end time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An optional text description for the transaction.",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency.",
            "nullable": true
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating whether the allowance was included in ledger from before.",
            "example": "\r\n            Given a PaymentDemand for a Subscription costing 100 USD, and an Allowance of 10 USD where the Allowance IS marked as included in the ledger, the total demand amount is 90 USD,\r\n            And the ledger will be updated with an entry of 100 USD.\r\n            \r\n            Had the Allowance been marked as NOT included, the ledger would have been updated with 90 USD (same as the demand total in this case).\r\n            "
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetailView"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "Represent an allowance to be billed on the next Invoice/Payment Demand."
      },
      "Infosoft.S4.Billing.Contracts.Api.Charge": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the charge.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The amount.",
            "format": "double"
          },
          "accountingTime": {
            "type": "string",
            "description": "The accounting time of the transaction (i.e. when is it effective from).",
            "format": "date-time"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand that caused this transaction (if a demand was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice (if a demand and invoice was involved).",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "The invoice number if it exists (if a demand and invoice was involved).",
            "format": "int64",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "The optional identifier of the payment that caused this transaction (if a payment was involved).",
            "format": "uuid",
            "nullable": true
          },
          "transactionType": {
            "$ref": "#/components/schemas/ChargeType"
          },
          "startTime": {
            "type": "string",
            "description": "The start time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "The end time for the period this charge covers (if any!).",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An optional text description for the transaction.",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency.",
            "nullable": true
          },
          "includedInLedger": {
            "type": "boolean",
            "description": "A value indicating whether the charge was included in ledger from before.",
            "example": "\r\n            Given a PaymentDemand for a Subscription costing 100 USD, and a Charge of 10 USD where the Charge IS marked as included in the ledger, the total demand amount is 110USD,\r\n            And the ledger will be updated with an entry of 100 USD.\r\n            \r\n            Had the charge been marked as NOT included, the ledger would have been updated with 110 USD (same as the demand total in this case).\r\n            "
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetailView"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "Represent an charge to be billed on the next Invoice/Payment Demand."
      },
      "Infosoft.S4.Billing.Contracts.Api.Settlement.FixedAmountDifferencePolicy": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.SettlementPolicy"
          }
        ],
        "properties": {
          "differenceLimit": {
            "type": "number",
            "description": "The difference limit for which settlement should be considered.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Policy options for settlement based on a fixed difference in amount."
      },
      "Infosoft.S4.Billing.Contracts.Api.Settlement.PercentOfDemandPolicy": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Api.Settlement.SettlementPolicy"
          }
        ],
        "properties": {
          "percentageLimit": {
            "$ref": "#/components/schemas/Percent"
          }
        },
        "additionalProperties": false,
        "description": "Policy options for settlement based on a percent coverage of the payment demand amount."
      },
      "Infosoft.S4.Billing.Contracts.Api.Settlement.SettlementPolicy": {
        "type": "object",
        "properties": {
          "policyType": {
            "$ref": "#/components/schemas/SettlementPolicyType"
          },
          "options": {
            "$ref": "#/components/schemas/SettlementConfiguration"
          }
        },
        "additionalProperties": false,
        "description": "Interface for settlement policy."
      },
      "Infosoft.S4.Billing.Contracts.BillingFrequencies": {
        "enum": [
          "Invalid",
          "OneHour",
          "OneDay",
          "TwoDays",
          "SevenDays",
          "TwoWeeks",
          "ThreeWeeks",
          "FourWeeks",
          "ThirtyDays",
          "SixWeeks",
          "EightWeeks",
          "OneMonth",
          "TwoMonths",
          "ThreeMonths",
          "FourMonths",
          "SixMonths",
          "TwelveMonths",
          "TwentyFourMonths",
          "Editions"
        ],
        "type": "string",
        "description": "The enum which represents different types of billing frequency."
      },
      "Infosoft.S4.Billing.Contracts.Period": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "isInstant": {
            "type": "boolean",
            "description": "Gets a value indicating whether this is an instant.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Defines a time period, where both Start and End are inclusive. If only start is given, the period represents and instant in time (useful for instance defining single transactions with no time component)."
      },
      "Infosoft.S4.DistributionInnovation.Contracts.DeliveryView": {
        "type": "object",
        "properties": {
          "deliveryId": {
            "type": "string",
            "description": "Get or set the delivery identifier.",
            "format": "uuid"
          },
          "diProduct": {
            "type": "string",
            "description": "Get or set the distribution innovation product."
          },
          "startTime": {
            "type": "string",
            "description": "Get or set the start of the delivery.",
            "format": "date-time"
          },
          "customerSystem": {
            "type": "string",
            "description": "Gets or sets the customer system that sends the data."
          },
          "type": {
            "type": "string",
            "description": "Get or set the type of the distribution innovation."
          },
          "exportTimestamp": {
            "type": "string",
            "description": "Get or set the export timestamp.",
            "format": "date-time",
            "nullable": true
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The create distribution innovation delivery view."
      },
      "Infosoft.S4.EhfInvoice.Contracts.DocumentType": {
        "enum": [
          "Invoice",
          "CreditNote",
          "All"
        ],
        "type": "string",
        "description": "Values that represent EHF file generation type."
      },
      "Infosoft.S4.EhfInvoice.Contracts.VaxTransfer.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the account.",
            "format": "uuid"
          },
          "enabled": {
            "type": "boolean",
            "description": "A value indicating whether this account configuration is enabled."
          },
          "displayName": {
            "type": "string",
            "description": "The display name."
          },
          "useTestEnvironment": {
            "type": "boolean",
            "description": "A value indicating whether to use the test environment, if set to false (the default), the VaxTransfer production Environment will be used and Invoices will incur costs."
          },
          "organizationId": {
            "type": "string",
            "description": "The organization this configuration is valid for.",
            "format": "uuid"
          },
          "bankAccount": {
            "type": "string",
            "description": "The bank account information (if any) for payment of Invoices.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An account."
      },
      "Infosoft.S4.EventNotification.Contracts.Integration.EventData.Invoices.Invoice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "number": {
            "type": "integer",
            "description": "Gets or sets the number of.",
            "format": "int64"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Gets or sets the identifier of the external invoice.",
            "nullable": true
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An invoice."
      },
      "Infosoft.S4.EventNotification.Contracts.Integration.EventData.Subscriptions.Subscription": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber that owns the subscription.",
            "format": "uuid"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The identifier of the subscription.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization the subscription belongs to.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Common base data needed for all Subscription related events (i.e. stuff generated by the subscription service)"
      },
      "Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.EmailDomainAuthorization": {
        "type": "object",
        "properties": {
          "domainName": {
            "type": "string",
            "description": "Gets or sets the domain name."
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          },
          "domainAuthorizationId": {
            "type": "string",
            "description": "Gets or sets the domain authorization identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The email domain authorization."
      },
      "Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.UserAuthorization": {
        "type": "object",
        "properties": {
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the user identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier.",
            "format": "uuid",
            "nullable": true
          },
          "identityProviderId": {
            "type": "string",
            "description": "Gets or sets the identity provider identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The user authorization."
      },
      "Infosoft.S4.Framework.Core.Domain.Shared.Percent": {
        "type": "object",
        "additionalProperties": false,
        "description": "A percentage."
      },
      "Infosoft.S4.Framework.Core.Domain.Shared.Price": {
        "required": [
          "currency",
          "taxExclusive",
          "taxRate"
        ],
        "type": "object",
        "properties": {
          "taxInclusive": {
            "$ref": "#/components/schemas/Money"
          },
          "currency": {
            "type": "string",
            "description": "The currency for all parts of the price."
          },
          "taxExclusive": {
            "$ref": "#/components/schemas/Money"
          },
          "taxAmount": {
            "$ref": "#/components/schemas/Money"
          },
          "taxRate": {
            "$ref": "#/components/schemas/Infosoft.S4.Framework.Core.Domain.Shared.Percent"
          }
        },
        "additionalProperties": false,
        "description": "Represents a Price of a product, subscription or similar."
      },
      "Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState": {
        "enum": [
          "Open",
          "Issued",
          "Credited",
          "Paid",
          "WrittenOff"
        ],
        "type": "string",
        "description": "Values that represent the invoice state."
      },
      "Infosoft.S4.Mollie.Contracts.Accounting": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Identifier for the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Identifier for the invoice.",
            "format": "uuid",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Identifier for the external invoice.",
            "nullable": true
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Identifier for the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier for the organization.",
            "format": "uuid",
            "nullable": true
          },
          "paymentRequestId": {
            "type": "string",
            "description": "Identifier for the payment request.",
            "format": "uuid",
            "nullable": true
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Identifier for the payment demand.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Identifier for the payment.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Various accounting and reporting parameters used by INFO-Subscription.\nSome of these values are purely for tracking/reporting/correlation purposes.\n\n\nProperties for payment creation will be used for payment matching in the most specific manner possible.\n1. ExternalInvoiceIdentifier\n2. InvoiceId\n3. SubscriberId/OrganizationId/SubscriberAccountId"
      },
      "Infosoft.S4.Mollie.Contracts.Api.AccountResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the account identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "the display name."
          },
          "profileId": {
            "type": "string",
            "description": "the Mollie profile identifier (pfl_...). Not a secret."
          },
          "isActive": {
            "type": "boolean",
            "description": "a value indicating whether this account is active."
          },
          "testMode": {
            "type": "boolean",
            "description": "a value indicating whether subsequent outbound Mollie API calls should target the test environment."
          },
          "createdAt": {
            "type": "string",
            "description": "the UTC timestamp when this account was created.",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "description": "the UTC timestamp when this account was last updated.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "API response DTO for a Mollie account.\nSecret-related fields are intentionally omitted — secrets must never be returned via API."
      },
      "Infosoft.S4.Mollie.Contracts.Api.CreateAccountRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the ID for the new account. If not specified, a new Guid is generated.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "the display name for this account."
          },
          "profileId": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "description": "the Mollie profile identifier (pfl_...). Not a secret."
          },
          "refreshToken": {
            "type": "string",
            "description": "the Mollie Connect OAuth refresh token obtained during account onboarding."
          },
          "testMode": {
            "type": "boolean",
            "description": "a value indicating whether subsequent outbound Mollie API calls should target the test environment."
          }
        },
        "additionalProperties": false,
        "description": "Request body for creating a new Mollie account."
      },
      "Infosoft.S4.Mollie.Contracts.Api.PaymentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the platform payment identifier.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "the Mollie account this payment belongs to.",
            "format": "uuid"
          },
          "mandateId": {
            "type": "string",
            "description": "the platform mandate identifier, or `null` for one-off payments.",
            "format": "uuid",
            "nullable": true
          },
          "molliePaymentId": {
            "type": "string",
            "description": "the Mollie payment identifier (`tr_…`)."
          },
          "sequenceType": {
            "type": "string",
            "description": "the sequence type of this payment (e.g. `\"first\"`, `\"recurring\"`)."
          },
          "status": {
            "type": "string",
            "description": "the lifecycle status of this payment."
          },
          "amount": {
            "type": "number",
            "description": "the payment amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "the ISO 4217 currency code."
          },
          "createdAt": {
            "type": "string",
            "description": "the UTC timestamp when this payment was created.",
            "format": "date-time"
          },
          "paidAt": {
            "type": "string",
            "description": "the UTC timestamp when the payment was confirmed paid, or `null`.",
            "format": "date-time",
            "nullable": true
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Refund"
            },
            "description": "Refunds on this payment, if any."
          }
        },
        "additionalProperties": false,
        "description": "Properties for a Mollie based Payment."
      },
      "Infosoft.S4.Mollie.Contracts.Api.UpdateAccountRequest": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 256,
            "minLength": 1,
            "type": "string",
            "description": "the new display name."
          },
          "profileId": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "description": "the new Mollie profile identifier (pfl_...). Not a secret."
          },
          "testMode": {
            "type": "boolean",
            "description": "a value indicating whether subsequent outbound Mollie API calls should target the test environment."
          }
        },
        "additionalProperties": false,
        "description": "Request body for updating a Mollie account's mutable fields."
      },
      "Infosoft.S4.Mollie.Contracts.Refund": {
        "type": "object",
        "properties": {
          "mollieRefundId": {
            "type": "string",
            "description": "The Mollie refund identifier (`re_…`)."
          },
          "amount": {
            "type": "number",
            "description": "The refunded amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "The ISO 4217 currency code."
          },
          "status": {
            "$ref": "#/components/schemas/PaymentRefundStatus"
          }
        },
        "additionalProperties": false,
        "description": "Value object carrying the core data for a single Mollie refund."
      },
      "Infosoft.S4.PayEx.Contracts.Agreement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the agreement.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the account.",
            "format": "uuid"
          },
          "initializingTransactionId": {
            "type": "string",
            "description": "The identifier of the transaction that initialized the agreement.",
            "format": "uuid"
          },
          "references": {
            "$ref": "#/components/schemas/ExternalReferences"
          },
          "card": {
            "$ref": "#/components/schemas/CardDetails"
          },
          "recurrenceToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "unscheduledToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "payerReference": {
            "type": "string",
            "description": "A reference number/id for the \"payer/cardholder\" at Swedbank. Use this to query for updated tokens!.",
            "nullable": true
          },
          "isDeactivated": {
            "type": "boolean",
            "description": "Indicates that the agreement was deactivated/deleted."
          },
          "createdTime": {
            "type": "string",
            "description": "The created time of the agreement.",
            "format": "date-time"
          },
          "deactivatedTime": {
            "type": "string",
            "description": "The deactivated time of the agreement.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An agreement."
      },
      "Infosoft.S4.PayEx.Contracts.ImportAgreement": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The identifier of the PayEx account the agreement belongs to.",
            "format": "uuid"
          },
          "card": {
            "$ref": "#/components/schemas/CardDetails"
          },
          "recurrenceToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "unscheduledToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "payerReference": {
            "type": "string",
            "description": "A reference number/id for the \"payer/cardholder\" at Swedbank. If no reference is set, one will be generated. \n            Note that if this exist in Swedbank, generating a new one will cause NWT metadata updates to fail indefinetly.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data for importing an existing Swedbank Pay Agreement (useful for migration scenarios)."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "bankgiroCustomerNumber": {
            "type": "string",
            "description": "Get or set the Autogiro customer number."
          },
          "bankgiroNumber": {
            "type": "string",
            "description": "Get or set the Autogiro number."
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          }
        },
        "additionalProperties": false,
        "description": "An account."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountCreate": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "bankgiroNumber": {
            "type": "string",
            "description": "Get or set the bankgiro number"
          },
          "bankgiroCustomerNumber": {
            "type": "string",
            "description": "Get or set the bankgiro customer number"
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          }
        },
        "additionalProperties": false,
        "description": "Represents an action for creating a new Autogiro account"
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountUpdate": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "bankGiroNumber": {
            "type": "string",
            "description": "Get or set the bank account number ."
          },
          "bankgiroCustomerNumber": {
            "type": "string",
            "description": "Get or set the bankgiro customer number."
          }
        },
        "additionalProperties": false,
        "description": "Represents an action for updating a new Autogiro account."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.AccountView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "bankgiroCustomerNumber": {
            "type": "string",
            "description": "Get or set the Autogiro customer number.",
            "nullable": true
          },
          "bankgiroNumber": {
            "type": "string",
            "description": "Get or set the Autogiro number.",
            "nullable": true
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Autogiro account"
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateCreate": {
        "required": [
          "bankAccountNumber",
          "subscriberNumber"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Get or set the account identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "bankAccountNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the Autogiro customer number."
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Get or set the Autogiro number.",
            "format": "int64"
          },
          "payerCivicNumberOrCompanyNumber": {
            "type": "string",
            "description": "Payer civic number of company number",
            "nullable": true
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time",
            "nullable": true
          },
          "rejected": {
            "type": "boolean",
            "description": "Get or set the indicator that mandate rejected."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Autogiro mandate."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.Account"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64"
          },
          "bankAccountNumber": {
            "type": "string",
            "description": "Get or set the bank account number"
          },
          "payerCivicNumberOrCompanyNumber": {
            "type": "string",
            "description": "Payer civic number of company number"
          },
          "deactivated": {
            "type": "boolean",
            "description": "Get or set the indicator that mandate deleted."
          },
          "exportDate": {
            "type": "string",
            "description": "The export date.",
            "format": "date-time",
            "nullable": true
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time"
          },
          "cancelledOn": {
            "type": "string",
            "description": "Get or set the date of the cancellation.",
            "format": "date-time",
            "nullable": true
          },
          "rejected": {
            "type": "boolean",
            "description": "Get or set the indicator that mandate rejected."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Autogiro mandate."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.Account": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "creditorNumber": {
            "type": "string",
            "description": "Get or set the BS creditor number."
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          },
          "collectionNotificationText": {
            "type": "string",
            "description": "Get or set the Main text line for payment notification."
          },
          "groupNumber": {
            "type": "string",
            "description": "Get or set the Debtor group number."
          },
          "subsystem": {
            "type": "string",
            "description": "Get or set the subsystem."
          }
        },
        "additionalProperties": false,
        "description": "An account."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.AccountCreate": {
        "required": [
          "collectionNotificationText",
          "creditorNumber",
          "groupNumber",
          "subsystem"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "creditorNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the BS creditor number."
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          },
          "collectionNotificationText": {
            "maxLength": 45,
            "minLength": 1,
            "type": "string",
            "description": "Get or set the Main text line for payment notification."
          },
          "groupNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the Debtor group number."
          },
          "subsystem": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the subsystem."
          }
        },
        "additionalProperties": false,
        "description": "Represents an action for creating a new BS account"
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.AccountUpdate": {
        "required": [
          "collectionNotificationText",
          "creditorNumber"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "creditorNumber": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the BS creditor number."
          },
          "isTesting": {
            "type": "boolean",
            "description": "Get or set the indicator that this account for testing only."
          },
          "collectionNotificationText": {
            "maxLength": 45,
            "minLength": 1,
            "type": "string",
            "description": "Get or set the collection notification text."
          },
          "groupNumber": {
            "type": "string",
            "description": "Get or set the group number."
          },
          "subsystem": {
            "type": "string",
            "description": "Get or set the subsystem."
          }
        },
        "additionalProperties": false,
        "description": "Represents an action for updating a new BS account."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.Mandate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.BS.Account"
          },
          "mandateNumber": {
            "type": "integer",
            "description": "Get or set the mandate number",
            "format": "int32"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Get or set the indicator that mandate cancelled."
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Get or set the Autogiro number.",
            "format": "int64"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time"
          },
          "cancelledOn": {
            "type": "string",
            "description": "Get or set the date of the cancellation.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A mandate."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.MandateCreate": {
        "required": [
          "mandateNumber",
          "subscriberNumber"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Get or set the account identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "mandateNumber": {
            "type": "integer",
            "description": "Get or set the mandate number",
            "format": "int32"
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Get or set the subscriber number.",
            "format": "int64"
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an BS mandate."
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.Transaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the transaction identifier",
            "format": "uuid"
          },
          "mandateId": {
            "type": "string",
            "description": "Get or set the mandate identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "Get or set the due date.",
            "format": "date-time"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Get or set the transaction cencellation."
          },
          "exportDate": {
            "type": "string",
            "description": "Get or set the date of export.",
            "format": "date-time",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Get or set the external invoice identifier."
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time"
          },
          "cancelledOn": {
            "type": "string",
            "description": "Get or set the date of the cancellation.",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Get or set the description."
          }
        },
        "additionalProperties": false,
        "description": "///"
      },
      "Infosoft.S4.PaymentAgreements.Contracts.BS.TransactionCreate": {
        "required": [
          "description",
          "externalInvoiceIdentifier"
        ],
        "type": "object",
        "properties": {
          "mandateId": {
            "type": "string",
            "description": "Get or set the mandate identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "The DueDate, assumed to be local to the Norwegian timezone. Any time parts specified will be ignored.",
            "format": "date-time"
          },
          "externalInvoiceIdentifier": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the external invoice identifier."
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "Get or set the description."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an BS transactions create."
      },
      "Infosoft.S4.Payments.Contracts.PaymentState": {
        "enum": [
          "AwaitingIdentification",
          "AwaitingApproval",
          "Completed"
        ],
        "type": "string",
        "description": "State for a payment"
      },
      "Infosoft.S4.ProductService.Contracts.Contract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the contract identifier.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/ContractType"
          },
          "typeValue": {
            "type": "string",
            "description": "Gets or sets the type value.",
            "nullable": true
          },
          "surchargeType": {
            "$ref": "#/components/schemas/Infosoft.S4.ProductService.Contracts.ContractSurchargeType"
          },
          "surchargeAmount": {
            "type": "number",
            "description": "Gets or sets the contract surcharge amount.",
            "format": "double",
            "nullable": true
          },
          "surchargeTaxPercent": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "Gets or sets the contract surcharge tax percent.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Values that represent contract."
      },
      "Infosoft.S4.ProductService.Contracts.ContractSurchargeType": {
        "enum": [
          "None",
          "Fixed",
          "Calculated"
        ],
        "type": "string",
        "description": "Values that represent surcharge types."
      },
      "Infosoft.S4.ProductService.Contracts.TemplatePackageRule": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "packageRuleId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the package rule.",
            "format": "int32"
          },
          "value": {
            "maxLength": 5000,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the value."
          }
        },
        "additionalProperties": false,
        "description": "A template package rule view."
      },
      "Infosoft.S4.Reporting.Contracts.OrganizationContact": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Gets or sets the contactperson's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the contactperson's last name.",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "Gets or sets the telephone.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "nullable": true
          },
          "isValid": {
            "type": "boolean",
            "description": "Query if this object is valid.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "An organization view."
      },
      "Infosoft.S4.Reporting.Contracts.OrganizationSetting": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/OrganizationSettingType"
          },
          "detailName": {
            "type": "string",
            "description": "Gets or sets the name of the detail."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value."
          },
          "isValid": {
            "type": "boolean",
            "description": "Query if this object is valid.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "An organization view."
      },
      "Infosoft.S4.Reporting.Contracts.OrganizationView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "Gets or sets the telephone.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "description": "Gets or sets the street.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "timeZoneId": {
            "type": "string",
            "description": "Gets or sets the identifier of the time zone.",
            "nullable": true
          },
          "contact": {
            "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationContact"
          },
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Reporting.Contracts.OrganizationSetting"
            },
            "description": "Gets or sets options for controlling the operation."
          }
        },
        "additionalProperties": false,
        "description": "An organization view."
      },
      "Infosoft.S4.Subscriber.Contracts.Identification": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Gets the type of the identification such as a GLN, ORGNR, CVR, CPR, Internal or whatever"
          },
          "value": {
            "type": "string",
            "description": "Gets the value of the identification. Depending on the type this can have various formats"
          }
        },
        "additionalProperties": false,
        "description": "An identification."
      },
      "Infosoft.S4.Subscriber.Contracts.SubscriberContact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier. The identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the phone.",
            "format": "tel",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "format": "email",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "addressLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the address lines."
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Indicates whether this instance is primary."
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Subscriber.Contracts.Identification"
            },
            "description": "Gets or sets the various identifications."
          },
          "careOf": {
            "type": "string",
            "description": "Gets or sets the CareOf property.",
            "nullable": true
          },
          "source": {
            "type": "string",
            "description": "Source-field for use with external-validation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact create."
      },
      "Infosoft.S4.Subscriptions.Contracts.AdditionalProduct": {
        "type": "object",
        "properties": {
          "subscriptionPackageId": {
            "type": "string",
            "description": "The the subscription package this product is associated with.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "The product identifier.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "The number of units of this product.",
            "format": "int64"
          },
          "includedInPlan": {
            "type": "boolean",
            "description": "A value indicating if this product is included in the subscription plan or not."
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Infosoft.S4.Framework.Core.Domain.Shared.Price"
          },
          "renewalAtListPrice": {
            "type": "boolean",
            "description": "A value indicating whether the price should be re-calculated at renewal based on the list price or not. This has no effect if IncludedInPlan is true."
          }
        },
        "additionalProperties": false,
        "description": "Represents an additional product."
      },
      "Infosoft.S4.Subscriptions.Contracts.Contract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the contract.",
            "format": "uuid",
            "nullable": true
          },
          "contractDate": {
            "type": "string",
            "description": "Gets or sets the contract date.",
            "format": "date-time",
            "nullable": true
          },
          "surchargeType": {
            "$ref": "#/components/schemas/ContractSurchargeType"
          },
          "surchargeAmount": {
            "type": "number",
            "description": "Gets or sets the surcharge amount.",
            "format": "double",
            "nullable": true
          },
          "surchargeTaxPercent": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "Gets or sets the surcharge tax percent.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A contract."
      },
      "Infosoft.S4.Subscriptions.Contracts.PermanentDiscount": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "permanentDiscountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the permanent discount.",
            "format": "uuid"
          },
          "percent": {
            "maximum": 100,
            "minimum": 0.01,
            "type": "number",
            "description": "Gets or sets the percent.",
            "format": "double"
          },
          "subscriptionPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscription package.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A permanent discount."
      },
      "Infosoft.S4.Subscriptions.Contracts.PlanSelection": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Reference to an existing subscription plan.",
            "format": "uuid",
            "nullable": true
          },
          "plan": {
            "$ref": "#/components/schemas/SubscriptionPackageDraft"
          }
        },
        "additionalProperties": false,
        "description": "Represents either an inline plan definition or a reference to an existing plan.\nExactly one of Infosoft.S4.Subscriptions.Contracts.PlanSelection.Id or Infosoft.S4.Subscriptions.Contracts.PlanSelection.Plan must be set."
      },
      "Infosoft.S4.Subscriptions.Contracts.SubscriptionPackageProductView": {
        "type": "object",
        "properties": {
          "subscriptionPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscription package.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "taxPercent": {
            "type": "number",
            "description": "Gets or sets the tax percent.",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "Gets or sets the quantity.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscription package product view."
      },
      "Infosoft.S4.Vipps.Contracts.Accounting": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Identifier for the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "Identifier for the invoice.",
            "format": "uuid",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Identifier for the external invoice.",
            "nullable": true
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Identifier for the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier for the organization, only use this if you want to override the organization on the account.",
            "format": "uuid",
            "nullable": true
          },
          "paymentRequestId": {
            "type": "string",
            "description": "Identifier for the payment request.",
            "format": "uuid",
            "nullable": true
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Identifier for the payment demand.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Identifier for the payment.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Various accounting and reporting parameters used by INFO-Subscription. \n            Some of these values are purely for tracking/reporting/correlation pruposes.\n            \n\n            Properties for payment creation will be used for payment matching in the most specific manner possible.\n            1. ExternalInvoiceIdentifier  \n            2. InvoiceId\n            3. SubscriberId/OrganozaiotnId/SubscriberAccountId"
      },
      "Infosoft.S4.Vipps.Contracts.Api.AccountUpdate": {
        "type": "object",
        "properties": {
          "apiCredentials": {
            "$ref": "#/components/schemas/Credentials"
          },
          "name": {
            "type": "string",
            "description": "Human Readable Display name of the Account."
          },
          "useCustomAPICredentials": {
            "type": "boolean",
            "description": "A value indicating whether to use custom API credentials, if false (default), the Infosoft Partner keys will be utilized."
          },
          "agreementDeactivationBehaviour": {
            "$ref": "#/components/schemas/AgreementDeactivationBehaviour"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for updating an existing VippsMobilePay Account."
      },
      "Infosoft.S4.Vipps.Contracts.Api.AgreementCreate": {
        "required": [
          "interval",
          "merchantAgreementUrl",
          "merchantRedirectUrl",
          "pricing",
          "productDescription",
          "productName"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The account id the agreement should be connected to.",
            "format": "uuid"
          },
          "campaign": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PriceCampaign"
              },
              {
                "$ref": "#/components/schemas/PeriodCampaign"
              },
              {
                "$ref": "#/components/schemas/EventCampaign"
              }
            ],
            "description": "An optional campaign for the agreement to start on.",
            "nullable": true
          },
          "pricing": {
            "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Price"
          },
          "phoneNumber": {
            "maxLength": 15,
            "type": "string",
            "description": "The phone number (if available). Used to simplify the Vipps interaction (prefils the landing page).",
            "nullable": true,
            "example": "96758886"
          },
          "initialCharge": {
            "$ref": "#/components/schemas/InitialCharge"
          },
          "interval": {
            "$ref": "#/components/schemas/Interval"
          },
          "isApp": {
            "type": "boolean",
            "description": "Indicate if the agreement registration should generate an App specific deep link for the landing page, this only works when initiated on the device where the Vipps App is running."
          },
          "skipLandingPage": {
            "type": "boolean",
            "description": "Skip the landing page (Confirmation Web Site/App page), this requires an approval and needs to be turned on on your Vipps account by Vipps. If set to true and not enabled on the Vipps end, the agreement registration will fail."
          },
          "merchantAgreementUrl": {
            "minLength": 1,
            "type": "string",
            "description": "URL where Vipps can send the customer to view/manage their subscription.\nTypically a \"My page\" where the user can change, pause, cancel, etc.",
            "example": "https://www.example.com/vipps-subscriptions/1234/"
          },
          "merchantRedirectUrl": {
            "minLength": 1,
            "type": "string",
            "description": "URL where customer should be redirected after the\nagreement has been approved/rejected in the Vipps mobile application."
          },
          "productName": {
            "minLength": 1,
            "type": "string",
            "description": "The product name that will appear in the Vipps Agreement.",
            "example": "Premier League subscription."
          },
          "productDescription": {
            "minLength": 1,
            "type": "string",
            "description": "The product description that will appear in the Vipps Agreement.",
            "example": "Access to all games of English top football."
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber Id that the agreement should be associated with",
            "format": "uuid"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "pattern": "^[A-Z]{2}$",
            "type": "string",
            "description": "An optional country code for the agreement defined as ISO 3166-2, defaults to NO. Use this for Danish and Finish MobilePay agreements for instance."
          },
          "profileScope": {
            "type": "string",
            "description": "The profile/userdata scope to require permission for. Given as a space separated list of values.",
            "nullable": true,
            "example": "name address email"
          }
        },
        "additionalProperties": false,
        "description": "Properties required to draft a new agreement with VippsMobilepay"
      },
      "Infosoft.S4.Vipps.Contracts.Charge": {
        "type": "object",
        "properties": {
          "chargeId": {
            "type": "string",
            "description": "The agreement charge id.",
            "format": "uuid"
          },
          "agreementId": {
            "type": "string",
            "description": "The agreement identifier.",
            "format": "uuid"
          },
          "vippsChargeId": {
            "type": "string",
            "description": "The agreement charge id.",
            "nullable": true
          },
          "vippsAgreementId": {
            "type": "string",
            "description": "The agreement id for corresponding charge.",
            "nullable": true
          },
          "amount": {
            "type": "integer",
            "description": "The amount.",
            "format": "int32"
          },
          "currency": {
            "type": "string",
            "description": "The amount currency.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Charge description.",
            "nullable": true
          },
          "chargeStatus": {
            "type": "string",
            "description": "The status for charge.",
            "nullable": true
          },
          "retryDays": {
            "type": "integer",
            "description": "The retry days for charge.",
            "format": "int32"
          },
          "dueDate": {
            "type": "string",
            "description": "The due date for charge.",
            "format": "date-time"
          },
          "orderId": {
            "type": "string",
            "description": "An optional orderId, if given will replace the charge identifier generated by Vipps.",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "The invoice id if one is available.",
            "format": "uuid",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "The external invoice identifier.",
            "nullable": true
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Vipps.Contracts.Accounting"
          }
        },
        "additionalProperties": false,
        "description": "Agreement charge."
      },
      "Infosoft.S4.Vipps.Contracts.Price": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/PriceType"
          },
          "amount": {
            "type": "integer",
            "description": "The base Amount of the agreement in Ører so 1 NOK becomes 100.",
            "format": "int32"
          },
          "currency": {
            "type": "string",
            "description": "The currency as a 3 letter ISO code."
          }
        },
        "additionalProperties": false,
        "description": "Defines pricing parameters on an agreement."
      },
      "InitialCharge": {
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 2147483647,
            "minimum": 100,
            "type": "integer",
            "description": "The amount.",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "An optional description for the initial charge/payment.",
            "nullable": true
          },
          "orderId": {
            "maxLength": 40,
            "type": "string",
            "description": "An optional orderId, if given will replace the charge identifier generated by Vipps.",
            "nullable": true
          },
          "chargeId": {
            "type": "string",
            "description": "An optional Charge Id, if given will replace the charge identifier generated automatically.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represent an initial charge in addition to the running agreement. Refer to the Vipps docs for details of when to use this."
      },
      "InitialOptions": {
        "type": "object",
        "properties": {
          "referenceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the reference that created this subscription, if not given a default one will be generated based on the assigned Subscription Id.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An initial options."
      },
      "InitialPackageTerm": {
        "type": "object",
        "properties": {
          "initialTermType": {
            "$ref": "#/components/schemas/InitialPackageTermTypes"
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value."
          }
        },
        "additionalProperties": false,
        "description": "An initial package term."
      },
      "InitialPackageTermTypes": {
        "enum": [
          "FixedDate",
          "FixedTimeSpan",
          "RemainingOfMonth",
          "RemainingOfYear"
        ],
        "type": "string",
        "description": "Values that represent initial package term types."
      },
      "InitialTerm": {
        "type": "object",
        "properties": {
          "initialTermType": {
            "type": "integer",
            "description": "Gets or sets the type of the initial term.",
            "format": "int32"
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A package chain step."
      },
      "IntegrationType": {
        "enum": [
          "Auth0",
          "AzureADB2C",
          "SiteAccess",
          "External"
        ],
        "type": "string",
        "description": "The integration type."
      },
      "InternalTransferAccountTransaction": {
        "type": "object",
        "properties": {
          "targetBillingAccountId": {
            "type": "string",
            "description": "Identifier for the billing account.",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "description": "The reason for the transfer."
          },
          "accountingTime": {
            "type": "string",
            "description": "An optional accounting time for the transfer, if not given the current time will be used.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Input for transfering an account transaction to a new account."
      },
      "Interval": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "description": "Unit for the period."
          },
          "count": {
            "type": "integer",
            "description": "Number of units to pass between charges.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Defines the planned charge interval on the agreement."
      },
      "IntervalPatternContract": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternContract"
          }
        ],
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Get or set the start date",
            "format": "date"
          },
          "periodicDay": {
            "type": "integer",
            "description": "Get or set the periodic day",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "An interval pattern contract."
      },
      "IntervalPatternView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternView"
          }
        ],
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Get or set the start date",
            "format": "date"
          },
          "periodicDay": {
            "type": "integer",
            "description": "Get or set the periodic day",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "An interval pattern view."
      },
      "Invoice": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/InvoiceBase"
          }
        ],
        "properties": {
          "dueDate": {
            "type": "string",
            "description": "Gets the date on which the invoice is expected to be paid.",
            "format": "date-time",
            "nullable": true
          },
          "creditNoteId": {
            "type": "string",
            "description": "Gets or sets the globally unique identifier for the credit note.",
            "format": "uuid",
            "nullable": true
          },
          "creditedOn": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the credited on.",
            "format": "date-time",
            "nullable": true
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReminderReference"
            },
            "description": "Gets a list of reminders issued for this invoice."
          }
        },
        "additionalProperties": false,
        "description": "A commercial document confirming a sale between a seller and a buyer. The invoice is issued by the seller and the buyer has to pay the claim."
      },
      "InvoiceBase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the globally unique identifier for this invoice",
            "format": "uuid"
          },
          "number": {
            "type": "integer",
            "description": "Gets the unique identifier for the invoice in a numeric format usable by humans and machines alike",
            "format": "int64",
            "nullable": true
          },
          "issuedOn": {
            "type": "string",
            "description": "Gets or sets the issued on.",
            "format": "date-time",
            "nullable": true
          },
          "supplier": {
            "$ref": "#/components/schemas/Participant"
          },
          "seller": {
            "$ref": "#/components/schemas/Participant"
          },
          "buyer": {
            "$ref": "#/components/schemas/Participant"
          },
          "issuer": {
            "$ref": "#/components/schemas/Participant"
          },
          "recipient": {
            "$ref": "#/components/schemas/Participant"
          },
          "paymentRecipient": {
            "$ref": "#/components/schemas/Participant"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceLine"
            },
            "description": "Gets or sets the specification of the invoice"
          },
          "taxPointDate": {
            "type": "string",
            "description": "Gets the tax point (or 'time of supply') for a transaction is the date the transaction takes place for VAT purposes",
            "format": "date-time",
            "nullable": true
          },
          "period": {
            "$ref": "#/components/schemas/Period"
          },
          "taxTotals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxTotal"
            },
            "description": "Gets or sets the tax totals."
          },
          "state": {
            "$ref": "#/components/schemas/Infosoft.S4.Invoice.Contracts.ReadModel.InvoiceState"
          },
          "paidOn": {
            "type": "string",
            "description": "Gets or sets the paid on of the invoice",
            "format": "date-time",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Gets or sets the identifier of the external invoice.",
            "nullable": true
          },
          "trackingId": {
            "type": "string",
            "description": "An optional GUID/UUID used for external tracking purposes.",
            "format": "uuid",
            "nullable": true
          },
          "lineExtensionAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "taxExclusiveAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "taxInclusiveAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "payableAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "buyerReference": {
            "type": "string",
            "description": "Gets or sets the buyer reference.",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "Gets or sets the order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A base class for the invoice and the credit note classes."
      },
      "InvoiceExportConfigurationCreate": {
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/InvoiceExportProviders"
          },
          "ehfConfiguration": {
            "$ref": "#/components/schemas/EhfConfiguration"
          }
        },
        "additionalProperties": false,
        "description": "An invoice export configuration create."
      },
      "InvoiceExportFileCreate": {
        "type": "object",
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/InvoiceExportProviders"
          },
          "documentType": {
            "$ref": "#/components/schemas/DocumentType"
          }
        },
        "additionalProperties": false,
        "description": "An invoice export file create."
      },
      "InvoiceExportProviders": {
        "enum": [
          "Unknown",
          "EHF"
        ],
        "type": "string",
        "description": "Enums for availble invoice export providers."
      },
      "InvoiceFee": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "number",
            "description": "Get or set the fee value",
            "format": "double"
          },
          "paymentType": {
            "$ref": "#/components/schemas/PaymentProviderType"
          },
          "omitForOrder": {
            "type": "boolean",
            "description": "True if the fee only applies to recurring demands and not the first/order demand."
          }
        },
        "additionalProperties": false,
        "description": "Properties of an Invoice/Demand fee."
      },
      "InvoiceFeeView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fee identifier",
            "format": "uuid"
          },
          "fee": {
            "type": "number",
            "description": "The actual fee value",
            "format": "double"
          },
          "paymentType": {
            "$ref": "#/components/schemas/PaymentProviderType"
          },
          "omitForOrder": {
            "type": "boolean",
            "description": "True if the fee only applies to recurring demands and not the first/order demand."
          }
        },
        "additionalProperties": false,
        "description": "Properties of an Invoice/Demand fee."
      },
      "InvoiceFileView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type."
          },
          "mimeType": {
            "type": "string",
            "description": "Gets or sets the type of the mime."
          },
          "relativeLink": {
            "type": "string",
            "description": "Gets or sets the relative link."
          }
        },
        "additionalProperties": false,
        "description": "An invoice file view."
      },
      "InvoiceLine": {
        "type": "object",
        "properties": {
          "allowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Allowance"
            },
            "description": "Gets the discounts applied to this invoiceline, i.e. 10% off a 100 NOK charge would have\na Infosoft.S4.Invoice.Contracts.ReadModel.LineDetail with an amount of 10 NOK."
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Charge"
            },
            "description": "Gets the charges applied to this invoiceline, i.e. 100 NOK for this product for one month.."
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Charge"
            },
            "description": "Gets the fees applied to this invoiceline, i.e. 10 NOK because this is an expensive way\nto distribute the product."
          },
          "id": {
            "type": "string",
            "description": "Gets the globally unique identifier for this line",
            "format": "uuid"
          },
          "lineNumber": {
            "type": "integer",
            "description": "Gets the identifier of the line within this invoice",
            "format": "int32"
          },
          "period": {
            "$ref": "#/components/schemas/Period"
          },
          "price": {
            "$ref": "#/components/schemas/Amount"
          },
          "quantity": {
            "type": "integer",
            "description": "Gets the number of items for which this invoice line applies",
            "format": "int64",
            "nullable": true
          },
          "taxTotals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxTotal"
            },
            "description": "Gets the tax totals for this line, contains totals for each tax type/group in this line\n(based on the Allowances and Charges)"
          }
        },
        "additionalProperties": false,
        "description": "Represents a line on an invoice. Typically one or more purchased items"
      },
      "InvoiceReference": {
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "Gets the identifier of the invoice.",
            "format": "uuid"
          },
          "issuedDate": {
            "type": "string",
            "description": "Gets the issued date.",
            "format": "date-time"
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "Gets the invoice number.",
            "format": "int64"
          },
          "externalIdentifier": {
            "type": "string",
            "description": "Gets the identifier of the external."
          }
        },
        "additionalProperties": false,
        "description": "Class to reference an invoice from the related Credit Note."
      },
      "InvoiceSequenceNumberConfiguration": {
        "type": "object",
        "properties": {
          "initialInvoiceNumber": {
            "type": "integer",
            "description": "Gets or sets the initial invoice number.",
            "format": "int64"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "An invoice sequence number configuration."
      },
      "InvoiceUpdate": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "buyer": {
            "$ref": "#/components/schemas/OptionalOfBuyer"
          },
          "recipient": {
            "$ref": "#/components/schemas/OptionalOfRecipient"
          },
          "buyerReference": {
            "$ref": "#/components/schemas/OptionalOfString"
          },
          "orderReference": {
            "$ref": "#/components/schemas/OptionalOfString"
          }
        },
        "additionalProperties": false,
        "description": "Represent a request to update an invoice."
      },
      "IssueCreditNote": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount of the credit note.",
            "format": "double"
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description of the credit note."
          },
          "referenceIdentification": {
            "type": "string",
            "description": "Gets or sets the reference to a subscriber."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "An issue credit note."
      },
      "LedgerBaseView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "ledgerDate": {
            "type": "string",
            "description": "Gets or sets the ledger date.",
            "format": "date-time"
          },
          "ledgerType": {
            "$ref": "#/components/schemas/LedgerType"
          },
          "text": {
            "type": "string",
            "description": "Gets or sets the text."
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment.",
            "format": "uuid",
            "nullable": true
          },
          "creditNoteId": {
            "type": "string",
            "description": "Gets or sets the identifier of the credit note.",
            "format": "uuid",
            "nullable": true
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand.",
            "format": "uuid",
            "nullable": true
          },
          "refundId": {
            "type": "string",
            "description": "Gets or sets the identifier of the refund.",
            "format": "uuid",
            "nullable": true
          },
          "reminderId": {
            "type": "string",
            "description": "Gets or sets the identifier of the reminder.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A ledger base view."
      },
      "LedgerType": {
        "enum": [
          "Charge",
          "Payment",
          "Credit",
          "Debit",
          "Balance",
          "Refund",
          "Summary",
          "WriteOff"
        ],
        "type": "string",
        "description": "Values that represent ledger types."
      },
      "LineDetail": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Gets the a free text description for the details",
            "nullable": true
          },
          "amount": {
            "$ref": "#/components/schemas/Amount"
          },
          "additionalTextDescriptions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets the additional text descriptions.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A line detail."
      },
      "Logo": {
        "type": "object",
        "properties": {
          "locationUri": {
            "type": "string",
            "description": "Gets or sets URI for the location of the logo.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "description": "A logo for an organization."
      },
      "MandateCreate": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Get or set the account identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "kid": {
            "type": "string",
            "description": "Get or set the Kunde Id."
          },
          "notificationDisabled": {
            "type": "boolean",
            "description": "Get or set the indicator that notification disabled."
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an AvtaleGiro mandate."
      },
      "MandateMethod": {
        "enum": [
          "Card",
          "Ideal",
          "DirectDebit",
          "Unknown"
        ],
        "type": "string",
        "description": "Supported mandate (payment method) types for Mollie recurring payments."
      },
      "MandateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the platform mandate identifier.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "the Mollie account this mandate belongs to.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "the platform subscriber identifier.",
            "format": "uuid"
          },
          "mollieCustomerId": {
            "type": "string",
            "description": "the Mollie customer identifier (`cst_…`)."
          },
          "mollieMandateId": {
            "type": "string",
            "description": "the Mollie mandate identifier (`mdt_…`), assigned once the mandate is completed. Null until then.",
            "nullable": true
          },
          "initialPaymentId": {
            "type": "string",
            "description": "the initial payment identifier for the mandate-establishing payment.",
            "format": "uuid",
            "nullable": true
          },
          "method": {
            "$ref": "#/components/schemas/MandateMethod"
          },
          "status": {
            "$ref": "#/components/schemas/MandateStatus"
          },
          "checkoutUrl": {
            "type": "string",
            "description": "the Mollie-hosted checkout URL."
          },
          "cardLabel": {
            "type": "string",
            "description": "the card brand label (e.g., \"Visa\") — only set for creditcard mandates once completed.",
            "nullable": true
          },
          "cardLastFour": {
            "type": "string",
            "description": "the last four digits of the card — only set for creditcard mandates once completed.",
            "nullable": true
          },
          "cardExpiryDate": {
            "type": "string",
            "description": "the card expiry date — only set for creditcard mandates once completed.",
            "format": "date",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "the UTC timestamp when this mandate was created.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Properties for a Mollie based Mandate."
      },
      "MandateStatus": {
        "enum": [
          "Unregistered",
          "Pending",
          "Active",
          "Inactive",
          "Revoked",
          "Unknown"
        ],
        "type": "string",
        "description": "Lifecycle states of a Mollie mandate."
      },
      "MandateView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier.",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountView"
          },
          "subscriberId": {
            "type": "string",
            "description": "Get or set the subscriber identifier.",
            "format": "uuid"
          },
          "kid": {
            "type": "string",
            "description": "Get or set the Kunde Id."
          },
          "notificationDisabled": {
            "type": "boolean",
            "description": "Get or set the indicator that notification disabled."
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time"
          },
          "cancelledOn": {
            "type": "string",
            "description": "Get or set the date of the cancellation.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an AvtaleGiro mandate."
      },
      "MatchingType": {
        "enum": [
          "Unknown",
          "NoInvoiceMatch",
          "UseExternalIdentifier",
          "UseSubscriberAndInvoice",
          "UseSubscriberFromExternalIdentifier",
          "UseBillingAccount"
        ],
        "type": "string",
        "description": "Values that represent matching variants"
      },
      "MollieAgreementOrderParameters": {
        "required": [
          "accountId",
          "returnUrl"
        ],
        "type": "object",
        "properties": {
          "returnUrl": {
            "minLength": 1,
            "type": "string",
            "description": "URL where the user is sent when returned from Mollie after completing the checkout."
          },
          "cancelUrl": {
            "type": "string",
            "description": "URL where the user is sent if he or she cancels the checkout.",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "description": "The identifier that determines which Mollie account to use for this payment.",
            "format": "uuid"
          },
          "culture": {
            "type": "string",
            "description": "The culture code in a Mollie compatible format (affect the checkout window language).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Order parameters for Mollie agreement registration."
      },
      "Money": {
        "type": "object",
        "properties": {
          "currencyCode": {
            "$ref": "#/components/schemas/CurrencyIsoCode"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "majorAmount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "majorIntegralAmount": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          },
          "minorAmount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "minorIntegralAmount": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          },
          "minValue": {
            "$ref": "#/components/schemas/Money"
          },
          "hasDecimals": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "MonthDayPatternContract": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternContract"
          }
        ],
        "properties": {
          "monthDay": {
            "type": "integer",
            "description": "Get or set the day of month",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A month day pattern contract."
      },
      "MonthDayPatternView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternView"
          }
        ],
        "properties": {
          "monthDay": {
            "maximum": 31,
            "minimum": 1,
            "type": "integer",
            "description": "Get or set the day of month",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "An interval pattern view."
      },
      "NotPaidProrationSetting": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/NotPaidProrationType"
          }
        },
        "additionalProperties": false,
        "description": "Setting defining how proration should occur when in a time period that is not paid."
      },
      "NotPaidProrationType": {
        "enum": [
          "NoProration",
          "GenerateChargeForConsumedTime"
        ],
        "type": "string",
        "description": "Values that represent not paid proration types."
      },
      "NotificationType": {
        "enum": [
          "Default",
          "BankNotificationEnabled",
          "BankNotificationDisabled"
        ],
        "type": "string",
        "description": "The planned change type."
      },
      "ObserverOptions": {
        "type": "object",
        "properties": {
          "disableVippsCompletion": {
            "type": "boolean",
            "description": "Toggles automatic Vipps|MobilePay order completion."
          }
        },
        "additionalProperties": false,
        "description": "Order observer configuration options. At the current time only valid for VippsMobilePay processing."
      },
      "OptionalOfBuyer": {
        "title": "Buyer",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Buyer"
          }
        ],
        "additionalProperties": false,
        "description": "A container for optional values, specifically designed to be used in the context\nserialization in an HTTP API using JSON.",
        "nullable": true
      },
      "OptionalOfRecipient": {
        "title": "Recipient",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Recipient"
          }
        ],
        "additionalProperties": false,
        "description": "A container for optional values, specifically designed to be used in the context\nserialization in an HTTP API using JSON.",
        "nullable": true
      },
      "OptionalOfString": {
        "title": "string",
        "type": "string",
        "additionalProperties": false,
        "description": "A container for optional values, specifically designed to be used in the context\nserialization in an HTTP API using JSON.",
        "nullable": true
      },
      "OptionalOperationType": {
        "enum": [
          "Unset",
          "Remove",
          "Set"
        ],
        "type": "string",
        "description": "<summary>Values that represent operation types that can be done on an Infosoft.S4.Framework.Core.Common.Optional`1 instance.</summary>"
      },
      "OrderChoices": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "The start time of the subscription, if not defined the current time will be used.",
            "format": "date-time",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The products chosen from the specified template subscription plan."
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "format": "uuid",
            "nullable": true
          },
          "permanentDiscountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the permanent discount.",
            "format": "uuid",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "The number of units/copies of this plan - will be applied as a multipler for pricing and included products.",
            "format": "int32",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "Indicateswhether automatic cancellation should be applied following the initial subscription period.",
            "nullable": true
          },
          "priceOverride": {
            "type": "number",
            "description": "Override the automatic plan price calculation with a specific price.",
            "format": "double",
            "nullable": true
          },
          "contract": {
            "$ref": "#/components/schemas/Contract"
          }
        },
        "additionalProperties": false,
        "description": "Represents properties/choices that overrides/set options from the Template Subscription Plan."
      },
      "OrderCompletionProcessOptions": {
        "type": "object",
        "properties": {
          "maxPollingTimeout": {
            "maximum": 60000,
            "minimum": 10,
            "type": "integer",
            "description": "The maximum wait/polling timeout, in milliseconds before the API will no longer wait and produce a synchronous result. Set to 0 or negative to disable polling entirely.\n            \n             The system max timeout takes precedence over this setting.\n             The completion process may timeout before this setting is reached.\n             The max timeout is currently aproximately 60 seconds, but is subject to change.\n             Waiting for this long is NOT recommended.",
            "format": "int32",
            "default": 30000
          }
        },
        "additionalProperties": false,
        "description": "Options for adjusting/controlling the order completion process."
      },
      "OrderCreate": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberAccount": {
            "type": "string",
            "description": "The subscriber account the order (and subsequent subscription) should be associated with. \n            If not given it will be automatically determined based on the current system state.",
            "format": "uuid",
            "nullable": true
          },
          "planSelection": {
            "$ref": "#/components/schemas/PlanSelection"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The identifier of a payment agreement to use for the new subscription.",
            "format": "uuid",
            "nullable": true
          },
          "paymentAgreementParameters": {
            "$ref": "#/components/schemas/PaymentAgreementParameters"
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProductOrder"
            },
            "description": "Additional products to include/buy with this order, in addition to the ones included in the defined template plan."
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization that the subscription should be created for.\nIf not set the first available organization will be choosen.",
            "format": "uuid"
          },
          "externalSubscriberId": {
            "type": "string",
            "description": "An external identifier of the subscriber, typically from external CRM systems or similar.",
            "nullable": true
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "The subscriber number (only define this if you are using your own number sequences).",
            "format": "int64",
            "nullable": true
          },
          "invoiceContactId": {
            "type": "string",
            "description": "The identifier of the subscriber contact used as the Invoice recipient/Invoice payer.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceContact": {
            "$ref": "#/components/schemas/SubscriberContact"
          },
          "tag": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Order.OrderTag"
          },
          "settleAccountBalance": {
            "type": "boolean",
            "description": "Should this order settle existing account balance when when billed."
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Parameters that controls the flow of the ordering process such as what is ordered and HOW."
      },
      "OrderExport": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "Gets or sets the status.",
            "nullable": true
          },
          "orderCreated": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order created.",
            "format": "date-time"
          },
          "orderCompleted": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order completed.",
            "format": "date-time",
            "nullable": true
          },
          "orderCancelled": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the order cancelled.",
            "format": "date-time",
            "nullable": true
          },
          "agreementReference": {
            "type": "string",
            "description": "Gets or sets the agreement reference.",
            "nullable": true
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.PaymentMethods"
          },
          "subscriptionPackage": {
            "$ref": "#/components/schemas/SubscriptionPackageExport"
          }
        },
        "additionalProperties": false,
        "description": "An order export."
      },
      "OrderPaymentDemandView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentDemandView"
          }
        ],
        "additionalProperties": false,
        "description": "A Order payment demand view."
      },
      "OrderPlanSourceType": {
        "enum": [
          "TemplatePackage",
          "InlinePlan",
          "ExistingPlan"
        ],
        "type": "string",
        "description": "Identifies the source/type of the subscription plan associated with an order.\nStored in the order event and read model to drive code-path branching at completion and cancellation."
      },
      "OrderStatus": {
        "enum": [
          "InProgress",
          "Completed",
          "Cancelled",
          "Rejected"
        ],
        "type": "string",
        "description": "An enum representing different order statuses."
      },
      "OrderTag": {
        "type": "object",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the values."
          }
        },
        "additionalProperties": false,
        "description": "The order tag.\nThe entity that is used to store various types (TagType) of values in a reporting service."
      },
      "OrderView": {
        "required": [
          "orderCreated"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the order record.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Identifier of the subscriber the order is associated with, if any.",
            "format": "uuid",
            "nullable": true
          },
          "templatePackageId": {
            "type": "string",
            "description": "Template package id from ProductService used when the order was created\n(if a template was the source of the plan).",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Organization that owns the subscription created by this order.",
            "format": "uuid"
          },
          "orderChoices": {
            "$ref": "#/components/schemas/OrderChoices"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Identifier of the payment agreement used for the order, if any.",
            "format": "uuid",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/OrderStatus"
          },
          "terminalRedirectUrl": {
            "type": "string",
            "description": "If the payment flow requires a terminal redirect (for example to a\nthird-party payment provider), this property contains the URL to redirect\nthe client to.",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "Identifier of the payment transaction created during order processing.",
            "format": "uuid",
            "nullable": true
          },
          "agreementReference": {
            "type": "string",
            "description": "Reference returned by the payment provider or agreement creation step.\nUseful for reconcilliation with external systems.",
            "nullable": true
          },
          "orderCreated": {
            "type": "string",
            "description": "Timestamp when the order was created.",
            "format": "date-time"
          },
          "orderCompleted": {
            "type": "string",
            "description": "Timestamp when the order completed processing, if available.",
            "format": "date-time",
            "nullable": true
          },
          "orderCancelled": {
            "type": "string",
            "description": "Timestamp when the order was cancelled, if applicable.",
            "format": "date-time",
            "nullable": true
          },
          "externalSubscriberId": {
            "type": "string",
            "description": "External identifier for the subscriber (for example CRM or billing\nsystem id) used for correlation.",
            "nullable": true
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Optional numeric subscriber number from the source system.",
            "format": "int64",
            "nullable": true
          },
          "subscriptionId": {
            "type": "string",
            "description": "Identifier of the subscription created as a result of this order, if any.",
            "format": "uuid",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "Identifier of the payment produced by the order processing flow.",
            "format": "uuid",
            "nullable": true
          },
          "paymentMethod": {
            "$ref": "#/components/schemas/PaymentMethods"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "Identifier of the invoice contact used for billing documents.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Subscriber account identifier associated with the order.",
            "format": "uuid",
            "nullable": true
          },
          "tag": {
            "$ref": "#/components/schemas/OrderTag"
          },
          "settleAccountBalance": {
            "type": "boolean",
            "description": "When true indicates the order processing attempted to settle existing\naccount balance as part of billing."
          },
          "orderReference": {
            "type": "string",
            "description": "Optional external reference supplied with the order for correlation with\nexternal systems.",
            "nullable": true
          },
          "planSourceType": {
            "$ref": "#/components/schemas/OrderPlanSourceType"
          },
          "subscriptionPlanId": {
            "type": "string",
            "description": "Subscription plan identifier when the plan was resolved to an existing\nor persisted inline plan.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a read model of an order returned by the API. This class\ncontains the identifiers and metadata produced by order processing such\nas status, related subscription/payment ids, timestamps and resolved plan\ninformation."
      },
      "Organization": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Class represents an organization for an AvtaleGiro account"
      },
      "OrganizationConfigurationCreate": {
        "type": "object",
        "properties": {
          "prefix": {
            "type": "string",
            "description": "A custom numeric prefix useful when sharing bank accounts between multiple organizations so that invoices can be identified by organization automatically.",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The organization id this configuration belongs to.",
            "format": "uuid"
          },
          "providerId": {
            "type": "string",
            "description": "The provider id that is used to generate the external invoice identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Represents the configuration an Organization uses for generating an external invoice identifier."
      },
      "OrganizationCreate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "Gets or sets the telephone.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "description": "Gets or sets the street.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentificationCreate"
            },
            "description": "Gets or sets the identifications. The identifications.",
            "nullable": true
          },
          "timeZoneId": {
            "type": "string",
            "description": "Gets or sets the identifier of the time zone.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An organization create."
      },
      "OrganizationDeliveriesExportSettings": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DeliveriesExportSettingsBase"
          }
        ],
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Get or set the organization identifier.",
            "format": "uuid"
          },
          "exportDate": {
            "type": "string",
            "description": "Gets or sets the date for the export.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The organization deliveries export settings."
      },
      "OrganizationExport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email."
          },
          "telephone": {
            "type": "string",
            "description": "Gets or sets the telephone."
          },
          "street": {
            "type": "string",
            "description": "Gets or sets the street."
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code."
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city."
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country."
          }
        },
        "additionalProperties": false,
        "description": "An organization export."
      },
      "OrganizationNumberValidationIssue": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets uniquely identifies this organization number validation issue",
            "format": "uuid"
          },
          "organizationNumber": {
            "type": "string",
            "description": "Gets or sets the organization number."
          },
          "details": {
            "type": "string",
            "description": "Gets or sets the description and other details of issue"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the original invoice identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Organization number validation issue"
      },
      "OrganizationNumberValidationResult": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Gets or sets status of validation (if true, it means everything is fine)"
          },
          "details": {
            "type": "string",
            "description": "Gets or sets the description and other details of issue"
          }
        },
        "additionalProperties": false,
        "description": "Organization number validation result"
      },
      "OrganizationSettingType": {
        "enum": [
          "None",
          "General",
          "SAFT"
        ],
        "type": "string",
        "description": "Values that represent organization configuration types."
      },
      "OrganizationView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "Gets or sets the telephone.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "description": "Gets or sets the street.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "identifications": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentificationView"
            },
            "description": "Gets or sets the various identifications of the organization"
          },
          "settings": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettingView"
            },
            "description": "Gets or sets options for controlling the operation."
          },
          "timeZoneInfo": {
            "$ref": "#/components/schemas/SimplifiedTimeZoneInfoView"
          }
        },
        "additionalProperties": false,
        "description": "An organization view."
      },
      "PackageChainCreate": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageChainStep"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A package chain view."
      },
      "PackageChainStep": {
        "required": [
          "retain"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "step": {
            "type": "integer",
            "description": "Gets or sets the amount to increment by.",
            "format": "int32"
          },
          "nextPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the next package.",
            "format": "uuid"
          },
          "retain": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the retain."
          }
        },
        "additionalProperties": false,
        "description": "A package chain step."
      },
      "PackageChainStepView": {
        "required": [
          "nextPackage",
          "retain"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "step": {
            "type": "integer",
            "description": "Gets or sets the amount to increment by.",
            "format": "int32"
          },
          "nextPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the next package.",
            "format": "uuid"
          },
          "nextPackage": {
            "$ref": "#/components/schemas/TemplatePackageView"
          },
          "retain": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the retain."
          }
        },
        "additionalProperties": false,
        "description": "A package chain step view."
      },
      "PackageChainUpdate": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageChainStep"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A package chain update."
      },
      "PackageChainView": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PackageChainStepView"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A package chain view."
      },
      "PackageDraft": {
        "required": [
          "currency",
          "name",
          "products"
        ],
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the products."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the billing frequency.",
            "format": "int32",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "currency": {
            "maxLength": 10,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "description": "Gets or sets the tax percent.",
            "format": "double"
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedAdditionalProduct"
            },
            "description": "Gets or sets a additional products."
          }
        },
        "additionalProperties": false,
        "description": "A package draft."
      },
      "PackageRule": {
        "required": [
          "description",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Gets or sets the identifier.",
            "format": "int32"
          },
          "name": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description."
          }
        },
        "additionalProperties": false,
        "description": "A package rule."
      },
      "PackageRules": {
        "enum": [
          "FixedNumberOfProducts",
          "FreeNumberOfProducts",
          "FixedPrice",
          "DiscountPercent",
          "DiscountAmount",
          "DiscountPercentForNumberOfProducts",
          "AutomaticStop",
          "AllowPriceOverride"
        ],
        "type": "string",
        "description": "Values that represent package rules."
      },
      "PaidProrationSetting": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/PaidProrationType"
          }
        },
        "additionalProperties": false,
        "description": "Setting defining how proration should occur when in a paid time period."
      },
      "PaidProrationType": {
        "enum": [
          "NoProration",
          "GenerateAllowanceForRemainingTime"
        ],
        "type": "string",
        "description": "Values that represent paid proration types."
      },
      "Participant": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Identification"
          },
          "externalId": {
            "$ref": "#/components/schemas/Identification"
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Identification"
            },
            "description": "Gets the various identifications."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "contact": {
            "$ref": "#/components/schemas/Contact"
          }
        },
        "additionalProperties": false,
        "description": "A participant."
      },
      "PatternContract": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "calendarId": {
            "type": "string",
            "description": "Get or set the calendar identifier",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A pattern contract."
      },
      "PatternView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A pattern view."
      },
      "PayExEcommerceOrderParameters": {
        "required": [
          "callbackUrl",
          "cancelUrl",
          "completeUrl"
        ],
        "type": "object",
        "properties": {
          "cancelUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets URL where the user is sent if he or she presses the cancel button."
          },
          "callbackUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets URL where the user is sent when returned from payex."
          },
          "completeUrl": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets URL where the user is sent when payex ecomerce completed."
          },
          "payExAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier that determines which PayEx account to use for this payment. If not specified the first available account will be used.",
            "format": "uuid",
            "nullable": true
          },
          "culture": {
            "type": "string",
            "description": "Gets or sets the culture code in a PayEx compatible format (affect the payment window language).",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Order parameters for PayEx ecommerce agreement registration."
      },
      "Payment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the Payment",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "valueDate": {
            "type": "string",
            "description": "The value date for the payment, i.e when was it added to the receiving account.",
            "format": "date-time"
          },
          "paymentDate": {
            "type": "string",
            "description": "The date the payment was made.",
            "format": "date-time"
          },
          "paidAmount": {
            "type": "number",
            "description": "The amount of the payment.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "The currency.",
            "nullable": true
          },
          "source": {
            "type": "string",
            "description": "The source of the payment.",
            "nullable": true
          },
          "subCategory": {
            "type": "string",
            "description": "The sub category",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "An optional comment.",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice this payment should match.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "description": "The number of the invoice this payment should match.",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Tthe external invoice identifier this payment should match.",
            "nullable": true
          },
          "registration": {
            "type": "string",
            "description": "Gets or sets the original registration time.",
            "format": "date-time"
          },
          "updated": {
            "type": "string",
            "description": "The latest update time for the payment.",
            "format": "date-time",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/Infosoft.S4.Payments.Contracts.PaymentState"
          },
          "approved": {
            "type": "string",
            "description": "The time of approval",
            "format": "date-time",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid",
            "nullable": true
          },
          "matchingErrors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the matching errors.",
            "nullable": true
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the the subscriber account.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Common properties for payment contracts"
      },
      "PaymentAgreementCreate": {
        "required": [
          "providerType"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "providerType": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the type of the provider."
          },
          "providerAgreementReference": {
            "type": "string",
            "description": "Gets or sets the provider agreement reference.",
            "nullable": true
          },
          "cardMask": {
            "type": "string",
            "description": "Gets or sets the card mask.",
            "nullable": true
          },
          "cardExpiration": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the card expiration.",
            "format": "date-time",
            "nullable": true
          },
          "paymentMethod": {
            "type": "string",
            "description": "Gets or sets the payment method.",
            "nullable": true
          },
          "providerAgreementId": {
            "type": "string",
            "description": "Gets or sets the provider agreement's internal identifier.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A payment agreement create."
      },
      "PaymentAgreementExport": {
        "type": "object",
        "properties": {
          "providerType": {
            "type": "string",
            "description": "Gets or sets the type of the provider."
          },
          "providerAgreementReference": {
            "type": "string",
            "description": "Gets or sets the provider agreement reference."
          },
          "cardMask": {
            "type": "string",
            "description": "Gets or sets the card mask."
          },
          "cardExpiration": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the card expiration.",
            "format": "date-time"
          },
          "paymentMethod": {
            "type": "string",
            "description": "Gets or sets the payment method."
          }
        },
        "additionalProperties": false,
        "description": "A payment agreement export."
      },
      "PaymentAgreementParameters": {
        "required": [
          "paymentMethod"
        ],
        "type": "object",
        "properties": {
          "paymentMethod": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.PaymentMethods"
          },
          "payExEcommerceParameters": {
            "$ref": "#/components/schemas/PayExEcommerceOrderParameters"
          },
          "vippsMobilePayParameters": {
            "$ref": "#/components/schemas/VippsMobilePayOrderParameters"
          },
          "mollieParameters": {
            "$ref": "#/components/schemas/MollieAgreementOrderParameters"
          }
        },
        "additionalProperties": false,
        "description": "A payment agreement order parameters."
      },
      "PaymentAgreementView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "providerType": {
            "type": "string",
            "description": "Gets or sets the type of the provider."
          },
          "providerAgreementReference": {
            "type": "string",
            "description": "Gets or sets the provider agreement reference.",
            "nullable": true
          },
          "cardMask": {
            "type": "string",
            "description": "Gets or sets the card mask.",
            "nullable": true
          },
          "cardExpiration": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the card expiration.",
            "format": "date-time",
            "nullable": true
          },
          "paymentMethod": {
            "type": "string",
            "description": "Gets or sets the payment method.",
            "nullable": true
          },
          "providerAgreementId": {
            "type": "string",
            "description": "Gets or sets the provider agreement's internal identifier.",
            "format": "uuid",
            "nullable": true
          },
          "deactivated": {
            "type": "boolean",
            "description": "Gets or sets the provider agreement's deactivate identifier."
          }
        },
        "additionalProperties": false,
        "description": "A payment agreement view."
      },
      "PaymentCaptureMode": {
        "enum": [
          "Automatic",
          "Manual"
        ],
        "type": "string",
        "description": "Controls when funds are captured for a payment."
      },
      "PaymentDemandDetailView": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "The total amount on the detail/line (NOT the Unit amount).",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "nextSubscriptionId": {
            "type": "string",
            "description": "Gets or sets the identifier of the next subscription.",
            "format": "uuid",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "description": "The identifier of the order the detail is associated with (if any).",
            "format": "uuid",
            "nullable": true
          },
          "period": {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Period"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "subscriptionId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscription.",
            "format": "uuid",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity sold. If not defined defaults to 1.",
            "format": "int64"
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetailView"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "A payment demand detail view."
      },
      "PaymentDemandFeeView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductTaxDetailView"
            },
            "description": "Gets or sets the tax details."
          }
        },
        "additionalProperties": false,
        "description": "A payment demand fee view."
      },
      "PaymentDemandReminderReschedule": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "minLength": 1,
            "type": "string",
            "description": "Set the reason why reminder should be rescheduled."
          },
          "newTime": {
            "type": "string",
            "description": "Set the new time for when the reminder should be created.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A demand reminder reschedule."
      },
      "PaymentDemandReminderView": {
        "type": "object",
        "properties": {
          "dueDate": {
            "type": "string",
            "description": "The due date.",
            "format": "date-time"
          },
          "fee": {
            "type": "number",
            "description": "The fee/surcharge (if any).",
            "format": "double",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The reminder identifier.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice.",
            "format": "uuid"
          },
          "issuedOn": {
            "type": "string",
            "description": "The reminder issue time.",
            "format": "date-time"
          },
          "ledgerId": {
            "type": "string",
            "description": "The identifier on the ledger (if applicable).",
            "format": "uuid",
            "nullable": true
          },
          "originalPaymentDemandId": {
            "type": "string",
            "description": "The original payment demand that this is a reminder for.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "The currency for the reminder - follows the original demand and the fee."
          },
          "counter": {
            "type": "integer",
            "description": "The reminder counter, i.e. is this the first reminder, the second or the 25th.",
            "format": "int32"
          },
          "payableAmount": {
            "type": "number",
            "description": "The payable amount required to settle the demand and the reminder.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Datacontract to hold properties for a reminder."
      },
      "PaymentDemandReplacementSettings": {
        "type": "object",
        "properties": {
          "calculateDemandDueDate": {
            "type": "boolean",
            "description": "Determine if the system should calculate the Due Date based on existing rules for the demand type and payment agreement. If set the Infosoft.S4.Billing.Contracts.PaymentDemandReplacementSettings.NewDueDate parameter must not be set."
          },
          "fee": {
            "type": "number",
            "description": "A fixed Fee for the newly generated demand. If NOT set, fee will be calculated from the demand (payment agreement and billing plan), if set to Zero no fee is added. Otherwise the fee will have the given value.",
            "format": "double",
            "nullable": true
          },
          "newDueDate": {
            "type": "string",
            "description": "The new due date, must be set if the Infosoft.S4.Billing.Contracts.PaymentDemandReplacementSettings.CalculateDemandDueDate parameter is false (or not set)",
            "format": "date-time",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The payment agreement to use for issuing a new Payment Demand, this will override whatever was on the original demand and on source subscription (if it is a recurring demand).",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Options that controls how an existing payment demand should be replaced when crediting the source demand."
      },
      "PaymentDemandTransaction": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description of the individual transaction."
          },
          "price": {
            "type": "number",
            "description": "The total price/amount of the line (NOT the unit price).",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "The currency valid for the price. This must match the currency on the account."
          },
          "period": {
            "$ref": "#/components/schemas/Infosoft.S4.Billing.Contracts.Period"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the product. If not defined defaults to 1.",
            "format": "int64"
          },
          "taxDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateProductTaxDetail"
            },
            "description": "A breakdown of how tax is divided for the transaction."
          }
        },
        "additionalProperties": false,
        "description": "Represents charge details when creating account demands"
      },
      "PaymentDemandView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Id of the demand.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The subscriber that this demand is charged for.",
            "format": "uuid"
          },
          "subscriberAccount": {
            "type": "string",
            "description": "The subscriber account the amount is charged to.",
            "format": "uuid",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "The total amount billed.",
            "format": "double"
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice this demand generated.",
            "format": "uuid",
            "nullable": true
          },
          "ledgerId": {
            "type": "string",
            "description": "The LedgerId that represents this demand at its time of creation.",
            "format": "uuid",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The currency.",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The organization.",
            "format": "uuid"
          },
          "paymentId": {
            "type": "string",
            "description": "An optional payment if the demand was settled by a single payment.",
            "format": "uuid",
            "nullable": true
          },
          "settleDate": {
            "type": "string",
            "description": "The time of settlement.",
            "format": "date-time",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "An optional payment method transaction id.",
            "format": "uuid",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "The billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "creditNoteId": {
            "type": "string",
            "description": "The credit note that crediting the demand has generated.",
            "format": "uuid",
            "nullable": true
          },
          "creditLedgerId": {
            "type": "string",
            "description": "The ledger id for the credit transaction.",
            "format": "uuid",
            "nullable": true
          },
          "creditTime": {
            "type": "string",
            "description": "Indicates if the demand was credited and when.",
            "format": "date-time",
            "nullable": true
          },
          "writeOffTime": {
            "type": "string",
            "description": "Indicates if the demand was written off and when.",
            "format": "date-time",
            "nullable": true
          },
          "writeOffReason": {
            "type": "string",
            "description": "The reason for the write off.",
            "nullable": true
          },
          "dueDate": {
            "type": "string",
            "description": "The payment due time.",
            "format": "date-time",
            "nullable": true
          },
          "issueDate": {
            "type": "string",
            "description": "When was the demand issued/created.",
            "format": "date-time",
            "nullable": true
          },
          "paymentProviderType": {
            "type": "string",
            "description": "The type of the payment method.",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Id for the payment agreement that followup payment requests and dunning will be based upon.",
            "format": "uuid",
            "nullable": true
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandDetailView"
            },
            "description": "Details for the payment demand that needs to be billed. Typically Orders and Subscriptions related, but may be standalone transactions as well.",
            "nullable": true
          },
          "reminders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandReminderView"
            },
            "description": "Reminders for the current demand.",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "An optional enterprise plan identifier indicating that the demand is assign to an Enterprise.",
            "format": "uuid",
            "nullable": true
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DemandCharge"
            },
            "description": "Charges increasing the total amount.",
            "nullable": true
          },
          "allowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DemandAllowance"
            },
            "description": "Allowances reducing the total amount.",
            "nullable": true
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandFeeView"
            },
            "description": "Fees such as extra cost for a specific Invoicing type.",
            "nullable": true
          },
          "invoiceContactId": {
            "type": "string",
            "description": "Identifier of the invoice recipient (Subscriber Contact).",
            "format": "uuid",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "Optional order reference.",
            "nullable": true
          },
          "settlementTransactions": {
            "$ref": "#/components/schemas/SettlementTransactions"
          }
        },
        "additionalProperties": false,
        "description": "Properties detailing a demand for a payment for services ordered or already rendered.\n            Provides the source billing data used to generate invoices."
      },
      "PaymentExport": {
        "type": "object",
        "properties": {
          "paymentDate": {
            "type": "string",
            "description": "Gets or sets the payment date.",
            "format": "date-time"
          },
          "valueDate": {
            "type": "string",
            "description": "Gets or sets the value date.",
            "format": "date-time"
          },
          "paidAmount": {
            "type": "number",
            "description": "Gets or sets the paid amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "source": {
            "type": "string",
            "description": "Gets or sets the source for the."
          },
          "subCategory": {
            "type": "string",
            "description": "Gets or sets the category the sub belongs to."
          },
          "paymentAgreement": {
            "$ref": "#/components/schemas/PaymentAgreementExport"
          },
          "registrationDate": {
            "type": "string",
            "description": "Gets or sets the registration date.",
            "format": "date-time"
          },
          "comment": {
            "type": "string",
            "description": "Gets or sets the comment."
          }
        },
        "additionalProperties": false,
        "description": "A payment export."
      },
      "PaymentFileFormat": {
        "enum": [
          "Unknown",
          "NETSDenmarkBetalingsServiceCollectionData",
          "NETSNorwayOCRGiro",
          "BankGirotBgMax",
          "AutoGiro"
        ],
        "type": "string",
        "description": "Values that represent payment file formats."
      },
      "PaymentImportFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The file Id.",
            "format": "uuid"
          },
          "hash": {
            "type": "string",
            "description": "The calculated file hash."
          },
          "format": {
            "$ref": "#/components/schemas/PaymentFileFormat"
          }
        },
        "additionalProperties": false,
        "description": "Metadata about a Payment Import file that has been uploaded for processing."
      },
      "PaymentImportState": {
        "type": "object",
        "properties": {
          "currentState": {
            "$ref": "#/components/schemas/ProcessingState"
          },
          "parsingResults": {
            "$ref": "#/components/schemas/ImportSummary"
          },
          "processingResults": {
            "$ref": "#/components/schemas/ImportSummary"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Any errors encountered."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Any warnings encountered."
          },
          "startTime": {
            "type": "string",
            "description": "Time for when processing started.",
            "format": "date-time",
            "nullable": true
          },
          "completionTime": {
            "type": "string",
            "description": "Time for when processing completed.",
            "format": "date-time",
            "nullable": true
          },
          "uploadTime": {
            "type": "string",
            "description": "The originally registered upload time.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "State properties reflecting a payment import process' current state."
      },
      "PaymentMethods": {
        "enum": [
          "Invoice",
          "Vipps",
          "AvtaleGiro",
          "Email",
          "EHF",
          "MobilePay",
          "OIO",
          "SwedbankPay",
          "BetalingsService",
          "Autogiro",
          "eFaktura",
          "Mollie"
        ],
        "type": "string",
        "description": "The available payment methods."
      },
      "PaymentOrderResult": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "The current status."
          },
          "id": {
            "type": "string",
            "description": "The primary identifier for the Payment Order at Swedbank, typically in the form of a relative URL.",
            "nullable": true
          },
          "terminalUrl": {
            "type": "string",
            "description": "The terminal url used for iframes and redirects.",
            "format": "uri",
            "nullable": true
          },
          "seamlessViewUrl": {
            "type": "string",
            "description": "The URL for seamless view rendering (Executable Javascript basically).",
            "format": "uri",
            "nullable": true
          },
          "performedOperationType": {
            "type": "string",
            "description": "Type of operation performed with the Swedbank Pay API - useful where the decision on which operation to perform is dynamic.",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "The INFO-Subscription identifier of the transaction (if it exists).",
            "format": "uuid",
            "nullable": true
          },
          "cardDetails": {
            "$ref": "#/components/schemas/CardDetails"
          },
          "recurrenceToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "unscheduledToken": {
            "$ref": "#/components/schemas/TokenDetails"
          },
          "tokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenDetails"
            },
            "description": "All tokens available on the payment order."
          },
          "amount": {
            "type": "integer",
            "description": "The amount on the payment order (if any).",
            "format": "int64"
          },
          "vatAmount": {
            "type": "integer",
            "description": "The VAT amount on the payment order (if any).",
            "format": "int64"
          },
          "description": {
            "type": "string",
            "description": "The description sent to Swedbank originally.",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The currency for the order.",
            "nullable": true
          },
          "payerReference": {
            "type": "string",
            "description": "A reference number/id for the \"payer/cardholder\" at Swedbank. Used for automated token and metadata refresh as well as some magic on Swedbanks end (not sure what).",
            "nullable": true
          },
          "reversal": {
            "$ref": "#/components/schemas/ReversalResult"
          }
        },
        "additionalProperties": false,
        "description": "Various result properties from a payment order."
      },
      "PaymentProvider": {
        "enum": [
          "Default",
          "NetsNorway",
          "NetsDenmark",
          "Bankgirot"
        ],
        "type": "string",
        "description": ""
      },
      "PaymentProviderType": {
        "enum": [
          "None",
          "eFaktura",
          "AvtaleGiro",
          "BetalingsService",
          "Autogiro",
          "External",
          "EHF",
          "Email",
          "MobilePay",
          "Vipps",
          "OIO",
          "SwedbankPay",
          "Mollie"
        ],
        "type": "string",
        "description": "The enum which represents different types of payment type."
      },
      "PaymentRefundStatus": {
        "enum": [
          "Pending",
          "Refunded",
          "Failed"
        ],
        "type": "string",
        "description": "Lifecycle status for a refund tracked on a payment aggregate."
      },
      "PaymentRequestBase": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets the amount for the payment.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the invoice id.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets the identifier of the organization for the payment request",
            "format": "uuid"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment demand.",
            "format": "uuid"
          },
          "paymentId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment.",
            "format": "uuid",
            "nullable": true
          },
          "paymentProviderType": {
            "type": "string",
            "description": "Gets or sets the provider type for this request"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets the identifier of the subscriber for the payment.",
            "format": "uuid"
          },
          "transactionId": {
            "type": "string",
            "description": "Gets or sets the identifier of transaction.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "PaymentRequestSettings": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier",
            "format": "uuid"
          },
          "retryDays": {
            "type": "integer",
            "description": "Gets or sets the number of days we should retry before stopping",
            "format": "int32"
          },
          "paymentProviderType": {
            "$ref": "#/components/schemas/PaymentProviderType"
          }
        },
        "additionalProperties": false,
        "description": "A payment request settings."
      },
      "PaymentRequestSettingsCreate": {
        "type": "object",
        "properties": {
          "retryDays": {
            "type": "integer",
            "description": "The number of days we should retry before stopping",
            "format": "int32"
          },
          "paymentProviderType": {
            "$ref": "#/components/schemas/PaymentProviderType"
          }
        },
        "additionalProperties": false,
        "description": "A payment request settings create."
      },
      "PaymentRequestStopRule": {
        "type": "object",
        "properties": {
          "delay": {
            "type": "string",
            "description": "Gets or sets the time span to wait after the latest payment request failed\nbefore applying the stop rule.",
            "format": "date-span",
            "example": "TimeSpan.FromDays(7)"
          },
          "causeDescription": {
            "type": "string",
            "description": "Gets or sets an administrative description of why payment requests are being stopped.\nThis description can be used for reporting and auditing purposes.",
            "example": "Maximum payment attempts exceeded"
          },
          "maxPaymentRequestAttempts": {
            "type": "integer",
            "description": "Gets or sets the maximum number of payment request attempts allowed before stopping.\nWhen this threshold is reached, no further payment requests will be attempted.",
            "format": "int32",
            "example": 3
          }
        },
        "additionalProperties": false,
        "description": "Defines a payment request stop rule that halts payment attempts after a specified number of failures.\nWhen the maximum number of payment request attempts is reached and the delay period has passed,\nall future payment requests are automatically stopped."
      },
      "PaymentStatus": {
        "enum": [
          "Pending",
          "Authorized",
          "Captured",
          "Paid",
          "Failed",
          "Expired",
          "Canceled",
          "ChargedBack"
        ],
        "type": "string",
        "description": "Lifecycle status for a platform payment."
      },
      "PaymentStopReschedule": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "minLength": 1,
            "type": "string",
            "description": "Set the reason why payment stop should be rescheduled."
          },
          "newTime": {
            "type": "string",
            "description": "Set the new time for when the payment stop should be created.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A payment stop reschedule."
      },
      "PaymentStopRule": {
        "type": "object",
        "properties": {
          "delay": {
            "type": "string",
            "description": "Gets or sets the time span to wait after the latest due date in the dunning process\nbefore evaluating the stop rule.",
            "format": "date-span",
            "example": "TimeSpan.FromDays(30)"
          },
          "causeDescription": {
            "type": "string",
            "description": "Gets or sets an administrative description of why payments are being stopped.\nThis description can be used for reporting and auditing purposes.",
            "example": "Account balance below acceptable threshold"
          },
          "balanceThresholdAmount": {
            "type": "number",
            "description": "Gets or sets the balance threshold amount that triggers the stop rule.\nWhen the subscriber's balance falls below this amount, payments are stopped.",
            "format": "double",
            "example": -1000.00
          }
        },
        "additionalProperties": false,
        "description": "Defines a payment stop rule that halts payment processing based on the subscriber's balance.\nWhen the subscriber's balance falls below the specified threshold after the delay period,\nall future payments are automatically stopped."
      },
      "PaymentStopSchedule": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Id of this specific schedule.",
            "format": "uuid"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "The payment demand that is not paid, and thus lead to this scheduled stop.",
            "format": "uuid"
          },
          "schedulingTime": {
            "type": "string",
            "description": "The planned execution time of the Payment Stop.",
            "format": "date-time"
          },
          "originalScheduleTime": {
            "type": "string",
            "description": "The original schedule time, only has a value in case of a reschedule.",
            "format": "date-time",
            "nullable": true
          },
          "rescheduleReason": {
            "type": "string",
            "description": "The reason of reschedule.",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier of the organization.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Properties of a scheduled payment stop.\n            \n\n            If configured payment stops are always scheduled after the last invoice/reminder in the dunning process.\n            They are automatically removed in case the payment demand is credited or settled before the stop is executed."
      },
      "PaymentStopScheduleCreate": {
        "type": "object",
        "properties": {
          "paymentDemandId": {
            "type": "string",
            "description": "Gets or sets the payment demand identifier",
            "format": "uuid"
          },
          "schedulingTime": {
            "type": "string",
            "description": "Gets or sets the payment stop generation time",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "The create payment stop schedule."
      },
      "PaymentTypes": {
        "enum": [
          "None",
          "eFaktura",
          "AvtaleGiro",
          "BetalingsService",
          "Autogiro",
          "External",
          "Vipps",
          "EHF",
          "Email",
          "SwedbankPay"
        ],
        "type": "string",
        "description": "Values that represent payment types."
      },
      "Percent": {
        "type": "object",
        "additionalProperties": false,
        "description": "A percent."
      },
      "PerformMandatePaymentRequest": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "mandateId": {
            "type": "string",
            "description": "the platform mandate identifier to charge.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "the Mollie account under which the payment is created.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "the platform subscriber identifier.",
            "format": "uuid"
          },
          "amount": {
            "maximum": 1.7976931348623157E+308,
            "minimum": 0,
            "type": "number",
            "description": "the payment amount (must be positive).",
            "format": "double"
          },
          "currency": {
            "maxLength": 3,
            "type": "string",
            "description": "the ISO 4217 currency code (e.g. `EUR`)."
          },
          "description": {
            "minLength": 1,
            "type": "string",
            "description": "the description shown on the Mollie payment."
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Accounting"
          },
          "paymentId": {
            "type": "string",
            "description": "The identifier of the INFO-Subscription payment, if not set a new one will be generated.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request body creating a payment based on a mollie mandate."
      },
      "PerformMandatePaymentResponse": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "the platform payment identifier (aggregate ID / idempotency key).",
            "format": "uuid"
          },
          "molliePaymentId": {
            "type": "string",
            "description": "the Mollie payment identifier (`tr_…`)."
          }
        },
        "additionalProperties": false,
        "description": "Response body forcreating a mandate based payment."
      },
      "Period": {
        "type": "object",
        "properties": {
          "start": {
            "type": "string",
            "description": "The start time of the period.",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "description": "The end time of the period.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A period that associated the line with a time frame for a provided service/product."
      },
      "PeriodCampaign": {
        "required": [
          "interval"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Campaign"
          }
        ],
        "properties": {
          "interval": {
            "$ref": "#/components/schemas/Interval"
          },
          "end": {
            "type": "string",
            "description": "An end date of the campaign. Calculated on period campaigns by Vipps MobilePay and only available on existing campaigns.",
            "nullable": true,
            "readOnly": true
          },
          "explanation": {
            "type": "string",
            "description": "Gets the explanation shown to the user. Generated by Vipps Mobilepay and only available on existing campaigns.",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "A period campaign."
      },
      "PermanentDiscount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "percent": {
            "type": "number",
            "description": "Gets or sets the percent.",
            "format": "double"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "deactivated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the deactivated."
          }
        },
        "additionalProperties": false,
        "description": "A permanent discount."
      },
      "PermanentDiscountCreate": {
        "required": [
          "name",
          "percent"
        ],
        "type": "object",
        "properties": {
          "percent": {
            "maximum": 100,
            "minimum": 0.01,
            "type": "number",
            "description": "Gets or sets the percent.",
            "format": "double"
          },
          "name": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "deactivated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the deactivated."
          }
        },
        "additionalProperties": false,
        "description": "A permanent discount create."
      },
      "PermanentDiscountUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PermanentDiscountCreate"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A permanent discount create."
      },
      "PlanProduct": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "quantity": {
            "type": "integer",
            "description": "Gets or sets the quantity.",
            "format": "int64"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "additionalProperties": false,
        "description": "Specifies a product with quantity and optional unit price for a subscription plan."
      },
      "PlanProductView": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The unique identifier of the product.",
            "format": "uuid"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of this product included.",
            "format": "int64"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "additionalProperties": false,
        "description": "Projection product composition and pricing for a subscription plan."
      },
      "PlanSelection": {
        "type": "object",
        "properties": {
          "template": {
            "$ref": "#/components/schemas/TemplatePlanReference"
          },
          "subscriptionPlanId": {
            "type": "string",
            "description": "Identifier of an existing subscription plan in the SubscriptionService.",
            "format": "uuid",
            "nullable": true
          },
          "plan": {
            "$ref": "#/components/schemas/SubscriptionPlanDraft"
          }
        },
        "additionalProperties": false,
        "description": "Defines how a subscription plan is sourced. Exactly one of the three properties must be provided."
      },
      "PlannedChangeBase": {
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "plannedDate": {
            "type": "string",
            "description": "Gets or sets the time when the delivery should be changed.",
            "format": "date-time"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the list of the products."
          },
          "subscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber contact.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The planned change of delivery base."
      },
      "PlannedChangeCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/PlannedChangeType"
          }
        },
        "additionalProperties": false,
        "description": "The planned change of delivery create."
      },
      "PlannedChangeType": {
        "enum": [
          "Start",
          "End"
        ],
        "type": "string",
        "description": "The planned change type."
      },
      "PlannedChangeUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "type": {
            "$ref": "#/components/schemas/PlannedChangeType"
          }
        },
        "additionalProperties": false,
        "description": "The planned change of delivery update."
      },
      "PlannedChangeView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the planned delivery change.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/PlannedChangeType"
          },
          "processed": {
            "type": "string",
            "description": "Gets or sets the time for when the delivery is processed.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The planned change of delivery view."
      },
      "PlannedSubscriberContactCreate": {
        "required": [
          "plannedDate",
          "subscriberContact"
        ],
        "type": "object",
        "properties": {
          "plannedDate": {
            "type": "string",
            "description": "Gets or sets the planned date.",
            "format": "date-time"
          },
          "subscriberContact": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriber.Contracts.SubscriberContact"
          },
          "processed": {
            "type": "string",
            "description": "Gets or sets the processed.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact create."
      },
      "PlannedSubscriberContactUpdate": {
        "required": [
          "plannedDate",
          "subscriberContact"
        ],
        "type": "object",
        "properties": {
          "plannedDate": {
            "type": "string",
            "description": "Gets or sets the planned date.",
            "format": "date-time"
          },
          "subscriberContact": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriber.Contracts.SubscriberContact"
          },
          "processed": {
            "type": "string",
            "description": "Gets or sets the processed.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact update."
      },
      "PlannedSubscriberContactView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the subscriber identifier.",
            "format": "uuid"
          },
          "plannedDate": {
            "type": "string",
            "description": "Gets or sets the planned date.",
            "format": "date-time"
          },
          "subscriberContact": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriber.Contracts.SubscriberContact"
          },
          "processed": {
            "type": "string",
            "description": "Gets or sets the processed.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A planned subscriber contact view."
      },
      "PostalAddress": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "description": "Gets the street.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets the city.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Gets the zip code.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets the country.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A postal address."
      },
      "PowerBIEmbedToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "description": "Gets or sets the embed token."
          },
          "expiration": {
            "type": "string",
            "description": "Gets or sets the expiration of the token.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A PowerBI embed token."
      },
      "PowerBIReport": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "reportDetailsUrl": {
            "type": "string",
            "description": "Gets the report details Url.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "A PowerBI report."
      },
      "PowerBIReportDetails": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/PowerBIReportStatus"
          },
          "embedUrl": {
            "type": "string",
            "description": "Gets or sets the Embed Url.",
            "nullable": true
          },
          "lastRefreshDate": {
            "type": "string",
            "description": "Gets or sets the last refresf date.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A PowerBI report details."
      },
      "PowerBIReportStatus": {
        "enum": [
          "Ready",
          "Refreshing"
        ],
        "type": "string",
        "description": "Values that represent power bi report status."
      },
      "PreliminaryDemandView": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "dueDate": {
            "type": "string",
            "description": "Gets or sets the due date.",
            "format": "date-time",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "format": "uuid",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "Gets the identifier.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the payment agreement.",
            "format": "uuid"
          },
          "paymentProviderType": {
            "type": "string",
            "description": "Gets or sets the type of the payment provider."
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandDetailView"
            },
            "description": "Gets or sets the details.",
            "readOnly": true
          },
          "allowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DemandAllowance"
            },
            "description": "Gets the allowances.",
            "readOnly": true
          },
          "charges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DemandCharge"
            },
            "description": "Gets the charges.",
            "readOnly": true
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentDemandFeeView"
            },
            "description": "Gets the fees.",
            "readOnly": true
          },
          "invoiceContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice recipient.",
            "format": "uuid",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "Optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A preliminary demand view."
      },
      "Price": {
        "required": [
          "currency",
          "taxExclusive"
        ],
        "type": "object",
        "properties": {
          "taxInclusive": {
            "type": "number",
            "description": "The price amount including taxes (Gross).",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "The currency for all parts of the price."
          },
          "taxExclusive": {
            "type": "number",
            "description": "Tax price amount excluding taxes (Net).",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "description": "The amount of the price that is TAX/VAT.",
            "format": "double"
          },
          "taxRate": {
            "type": "number",
            "description": "The tax rate in percentages.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents a flattened DTO version of the Price class."
      },
      "PriceCampaign": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Campaign"
          }
        ],
        "properties": {
          "end": {
            "type": "string",
            "description": "The end time of the campaign.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A price campaign."
      },
      "PriceType": {
        "enum": [
          "Legacy",
          "Variable"
        ],
        "type": "string",
        "description": "Indicates the price type used for Vipps Agreements. Maps to the corresponding Vipps price types."
      },
      "PriceTypeView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "subscribable": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is subscribable."
          }
        },
        "additionalProperties": false,
        "description": "A price type view."
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "ProcessedAccountPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProcessedPaymentRequest"
          }
        ],
        "properties": {
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ProcessedOrderPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProcessedPaymentRequest"
          }
        ],
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the identifier of order.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ProcessedPaymentRequest": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentRequestBase"
          }
        ],
        "properties": {
          "attempts": {
            "type": "integer",
            "description": "Gets or sets the number of payment request attempts.",
            "format": "int32"
          },
          "processedTime": {
            "type": "string",
            "description": "Gets the due date.",
            "format": "date-time"
          },
          "remoteProcessingFailed": {
            "type": "boolean",
            "description": "Set to true if the remote provider processing failed.",
            "nullable": true
          },
          "remoteFailure": {
            "type": "string",
            "description": "A remote provider failure code or reason if available.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ProcessedSubscriptionPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ProcessedPaymentRequest"
          }
        ],
        "properties": {
          "subscriptionId": {
            "type": "string",
            "description": "Gets the identifier of the subscription.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ProcessingAccepted": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the file.",
            "format": "uuid"
          },
          "state": {
            "$ref": "#/components/schemas/PaymentImportState"
          }
        },
        "additionalProperties": false,
        "description": "Represents response for processing accepted results."
      },
      "ProcessingState": {
        "enum": [
          "ReadyForProcessing",
          "ParsingStarted",
          "ParsingCompleted",
          "ProcessingStarted",
          "ProcessingCompleted",
          "Failed"
        ],
        "type": "string",
        "description": "Values that represent processing states."
      },
      "ProductCalendar": {
        "type": "object",
        "properties": {
          "calendarId": {
            "type": "string",
            "description": "Gets or sets the identifier of the calendar.",
            "format": "uuid"
          },
          "startsOnDate": {
            "type": "string",
            "description": "Gets or sets the starts on date.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A product calendar view."
      },
      "ProductCategory": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "categoryId": {
            "type": "string",
            "description": "Gets or sets the identifier of the category.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product category."
      },
      "ProductDeliveryCalendar": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "calendarId": {
            "type": "string",
            "description": "Gets or sets the identifier of the calendar.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product calendar."
      },
      "ProductDeliveryCalendarCreate": {
        "type": "object",
        "properties": {
          "calendarId": {
            "type": "string",
            "description": "Gets or sets the identifier of the calendar.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product delivery calendar create."
      },
      "ProductDeliveryCalendarUpdate": {
        "type": "object",
        "properties": {
          "calendarId": {
            "type": "string",
            "description": "Gets or sets the identifier of the calendar.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product delivery calendar update."
      },
      "ProductDeliveryMatrixCreate": {
        "type": "object",
        "properties": {
          "deliveryMatrixId": {
            "type": "string",
            "description": "Gets or sets the identifier of the delivery matrix.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product delivery matrix create."
      },
      "ProductDeliveryMatrixUpdate": {
        "type": "object",
        "properties": {
          "deliveryMatrixId": {
            "type": "string",
            "description": "Gets or sets the identifier of the delivery matrix.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product delivery matrix create."
      },
      "ProductDeliveryMatrixView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DeliveryMatrixView"
          }
        ],
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product delivery matrix view."
      },
      "ProductExport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          }
        },
        "additionalProperties": false,
        "description": "A product export."
      },
      "ProductExtendedCreate": {
        "required": [
          "billingFrequencyId",
          "currency",
          "name",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "partNo": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the part no.",
            "nullable": true
          },
          "externalPartNo": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the external part no.",
            "nullable": true
          },
          "categoryId": {
            "type": "string",
            "description": "Gets or sets the identifier of the category.",
            "format": "uuid",
            "nullable": true
          },
          "calendarId": {
            "type": "string",
            "description": "Gets or sets the identifier of the calendar.",
            "format": "uuid",
            "nullable": true
          },
          "calendarStartsOnDate": {
            "type": "string",
            "description": "Gets or sets the calendar starts on date.",
            "format": "date-time",
            "nullable": true
          },
          "priceTypeId": {
            "type": "string",
            "description": "Gets or sets the identifier of the price type.",
            "format": "uuid"
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "billingFrequencyId": {
            "$ref": "#/components/schemas/BillingFrequencies"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "description": "Gets or sets the expiry date.",
            "format": "date-time",
            "nullable": true
          },
          "taxGroupId": {
            "type": "string",
            "description": "Gets or sets the identifier of the tax group.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product extended create."
      },
      "ProductExtendedView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "partNo": {
            "type": "string",
            "description": "Gets or sets the part no.",
            "nullable": true
          },
          "externalPartNo": {
            "type": "string",
            "description": "Gets or sets the external part no.",
            "nullable": true
          },
          "productPrice": {
            "$ref": "#/components/schemas/ProductPriceView"
          },
          "taxGroup": {
            "$ref": "#/components/schemas/TaxGroupView"
          },
          "productCategory": {
            "$ref": "#/components/schemas/ProductCategory"
          },
          "calendars": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCalendar"
            },
            "description": "Gets or sets the calendars."
          }
        },
        "additionalProperties": false,
        "description": "A product extended view."
      },
      "ProductMapping": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "diProduct": {
            "type": "string",
            "description": "Gets or sets the identifier of the product in DI system."
          }
        },
        "additionalProperties": false,
        "description": "Base properties of a distribution innovation product mapping."
      },
      "ProductPrice": {
        "required": [
          "billingFrequencyId",
          "currency",
          "startDate"
        ],
        "type": "object",
        "properties": {
          "billingFrequencyId": {
            "$ref": "#/components/schemas/BillingFrequencies"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "priceTypeId": {
            "type": "string",
            "description": "Gets or sets the identifier of the price type.",
            "format": "uuid"
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "description": "Gets or sets the expiry date.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A product price create."
      },
      "ProductPriceView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the billing frequency.",
            "format": "int32"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "priceTypeId": {
            "type": "string",
            "description": "Gets or sets the identifier of the pricetype.",
            "format": "uuid"
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date.",
            "format": "date-time"
          },
          "expiryDate": {
            "type": "string",
            "description": "Gets or sets the expiry date.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A product price view."
      },
      "ProductRequest": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The identifier of the product, should match an existing product.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "The number of units of this product.",
            "format": "int32"
          },
          "unitPriceOverride": {
            "$ref": "#/components/schemas/Price"
          },
          "renewalAtListPrice": {
            "type": "boolean",
            "description": "A value indicating whether to price during renewals at the list price instead of the override. This has no effect if price override is not given."
          }
        },
        "additionalProperties": false,
        "description": "An additional product to add to a subscription."
      },
      "ProductTaxDetail": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets the identifier of the product.",
            "format": "uuid",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets the description.",
            "nullable": true
          },
          "taxableAmount": {
            "type": "number",
            "description": "Gets total the amount without tax (NOT Unit price).",
            "format": "double"
          },
          "taxPercent": {
            "type": "number",
            "description": "Gets the tax percent.",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "description": "The total amount with tax (NOT Unit price).",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity sold. If not defined defaults to 1.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A class containing tax and product details for a payment demand line/detail."
      },
      "ProductTaxDetailView": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets the identifier of the product.",
            "format": "uuid",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets the description.",
            "nullable": true
          },
          "taxableAmount": {
            "type": "number",
            "description": "Gets the amount without taxes.",
            "format": "double"
          },
          "taxPercent": {
            "type": "number",
            "description": "Gets the tax percent.",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount including taxes.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A product tax detail view."
      },
      "ProductTaxGroupCreate": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "taxGroupId": {
            "type": "string",
            "description": "Gets or sets the identifier of the tax group.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product tax group create."
      },
      "ProductTaxGroupView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "taxGroupId": {
            "type": "string",
            "description": "Gets or sets the identifier of the tax group.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A product tax group view."
      },
      "ProductUpdate": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "partNo": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the part no.",
            "nullable": true
          },
          "externalPartNo": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the external part no.",
            "nullable": true
          },
          "categoryId": {
            "type": "string",
            "description": "Gets or sets the identifier of the category.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A product update."
      },
      "ProductView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The product view model."
      },
      "ProrationPolicy": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The human readable name of the policy."
          },
          "id": {
            "type": "string",
            "description": "The identifier.",
            "format": "uuid"
          },
          "notPaidProration": {
            "$ref": "#/components/schemas/NotPaidProrationSetting"
          },
          "paidProration": {
            "$ref": "#/components/schemas/PaidProrationSetting"
          }
        },
        "additionalProperties": false,
        "description": "Properties that defines how automatic proration should be have for specific scenarios."
      },
      "Provider": {
        "enum": [
          "DistributionInnovation"
        ],
        "type": "string",
        "description": "The provider."
      },
      "ProviderConfigurationCreate": {
        "required": [
          "checkDigitAlgorithm",
          "length",
          "providerType"
        ],
        "type": "object",
        "properties": {
          "length": {
            "type": "integer",
            "description": "Total length of the identifier generated, including custom organization prefix and check digit.",
            "format": "int32"
          },
          "subscriberNumberReservedLength": {
            "type": "integer",
            "description": "The number of characters reserved for the Subscriber Number (from the end/right side of the identifier).",
            "format": "int32"
          },
          "checkDigitAlgorithm": {
            "$ref": "#/components/schemas/CheckDigitAlgorithm"
          },
          "providerType": {
            "$ref": "#/components/schemas/PaymentProvider"
          }
        },
        "additionalProperties": false,
        "description": "Configuration for generating an External Invoice Identifier (for payment matching mostly)."
      },
      "Recipient": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Identification"
          },
          "name": {
            "type": "string",
            "description": "The name of the recipient."
          },
          "street": {
            "type": "string",
            "description": "The street including house number etc.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "City of the recipient.",
            "nullable": true
          },
          "zipCode": {
            "type": "string",
            "description": "Zip code of the recipient",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country of the recipient.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The email of the recipient",
            "nullable": true
          },
          "telephone": {
            "type": "string",
            "description": "The telephone number of the recipient",
            "nullable": true
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Identification"
            },
            "description": "The list of unique identifications for the recipient."
          },
          "externalId": {
            "$ref": "#/components/schemas/Identification"
          },
          "contact": {
            "$ref": "#/components/schemas/Contact"
          }
        },
        "additionalProperties": false,
        "description": "A recipient is a person, company or other entity which a given invoice is distributed to."
      },
      "RecurringOptions": {
        "type": "object",
        "additionalProperties": false,
        "description": "A recurring options."
      },
      "Refund": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier for the refund",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets identifier of the subscriber",
            "format": "uuid"
          },
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets identifier of the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "description": "Gets or sets comment.",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "description": "Gets or sets external reference identifier.",
            "nullable": true
          },
          "paymentId": {
            "type": "string",
            "description": "An optional payment.",
            "format": "uuid",
            "nullable": true
          },
          "ledgerId": {
            "type": "string",
            "description": "Gets or sets identifier of the ledger",
            "format": "uuid",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "description": "Gets or sets time of created UTC",
            "format": "date-time"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Common properties for refund contracts"
      },
      "RefundCharge": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "The description for the refund. If not given the original charge description will be used.",
            "nullable": true
          },
          "amount": {
            "type": "integer",
            "description": "The amount. If not given the original amount will be used. Cannot be higher than the original amount.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Parameters to refund a charge."
      },
      "RefundPaymentRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 1.7976931348623157E+308,
            "minimum": 0.01,
            "type": "number",
            "description": "the refund amount.\nWhen omitted, the full payment amount is refunded.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Request body for refunding a payment."
      },
      "RefundPaymentResponse": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "the platform payment identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Response body for refunding a payment."
      },
      "ReleaseView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "releaseNumber": {
            "type": "integer",
            "description": "Gets or sets the release number.",
            "format": "int32"
          },
          "releaseDate": {
            "type": "string",
            "description": "Gets or sets the release date.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "A release view."
      },
      "Reminder": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/InvoiceBase"
          }
        ],
        "properties": {
          "dueDate": {
            "type": "string",
            "description": "Gets the date on which the invoice is expected to be paid.",
            "format": "date-time"
          },
          "invoiceReference": {
            "$ref": "#/components/schemas/InvoiceReference"
          },
          "reminderNumber": {
            "type": "integer",
            "description": "Gets the reminder sequence number (1. for the first reminder, 2 for the second etc)",
            "format": "int32"
          },
          "penaltySurcharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Charge"
            },
            "description": "Gets or sets the penalty surcharges."
          }
        },
        "additionalProperties": false,
        "description": "The reminder represents a followup letter on the original invoice."
      },
      "ReminderHandlingConfiguration": {
        "type": "object",
        "properties": {
          "enableAutomaticCrediting": {
            "type": "boolean",
            "description": "Option to enable automatic crediting."
          },
          "creditReason": {
            "type": "string",
            "description": "The credit reason."
          }
        },
        "additionalProperties": false,
        "description": "Defines options on how to handle settlement when/if reminders are present."
      },
      "ReminderPolicy": {
        "type": "object",
        "properties": {
          "disableAccountPaymentConsumption": {
            "type": "boolean",
            "description": "A value indicating whether the account allowance consumption should happen when generating reminders."
          }
        },
        "additionalProperties": false,
        "description": "A reminder policy options valid across all reminder steps for a dunning process."
      },
      "ReminderReference": {
        "type": "object",
        "properties": {
          "reminderId": {
            "type": "string",
            "description": "Gets the identifier of the reminder.",
            "format": "uuid"
          },
          "issuedOn": {
            "type": "string",
            "description": "Gets the Date/Time of the issued on.",
            "format": "date-time"
          },
          "dueDate": {
            "type": "string",
            "description": "Gets the due date.",
            "format": "date-time"
          },
          "reminderNumber": {
            "type": "integer",
            "description": "Gets the reminder number.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A reminder reference."
      },
      "ReminderSettings": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the identifier",
            "format": "uuid"
          },
          "dunningProcessId": {
            "type": "string",
            "description": "Get or set the dunning process identifier",
            "format": "uuid"
          },
          "delay": {
            "type": "integer",
            "description": "Get or set the delay value",
            "format": "int32"
          },
          "minimumDueDays": {
            "type": "integer",
            "description": "Get or set the minimum due days",
            "format": "int32"
          },
          "fee": {
            "type": "number",
            "description": "Get or set the fee value",
            "format": "double"
          },
          "number": {
            "type": "integer",
            "description": "The number/counter that this setup represents, i.e. it is the 1st, 2nd or 123th reminder that this applies to.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A reminder settings contract."
      },
      "ReminderSettingsCreate": {
        "type": "object",
        "properties": {
          "delay": {
            "type": "integer",
            "description": "The number of days to wait between the due payment of the invoice (or previous reminder) and issuing a new reminder.",
            "format": "int32"
          },
          "minimumDueDays": {
            "type": "integer",
            "description": "The minimum number of days until payment is due.",
            "format": "int32"
          },
          "fee": {
            "type": "number",
            "description": "The fee associated with the reminder. I.e. how much should be added in surchage to the original invoice amount.",
            "format": "double"
          },
          "number": {
            "type": "integer",
            "description": "The number/counter that this setup represents, i.e. it is the 1st, 2nd or 123th reminder that this applies to.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The reminder settings"
      },
      "RemoteCharge": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "Gets or sets treated as a whole sum postfixed with two decimals for\ncents, eg 234 = 2.34 NOK",
            "format": "int32"
          },
          "amountRefunded": {
            "type": "integer",
            "description": "Gets or sets the total amount which has been refunded, in case of\nstatus refund/partial refund.\nTreated as a whole sum postfixed with two decimals for cents, eg\n234 = 2.34 NOK",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "description": "Gets or sets description of the charge"
          },
          "due": {
            "type": "string",
            "description": "Gets or sets the due date for this charge",
            "format": "date-time"
          },
          "id": {
            "type": "string",
            "description": "Gets or sets identifier for this charge (for this customer's\nsubscription)."
          },
          "status": {
            "type": "string",
            "description": "Gets or sets possible values include: 'PENDING', 'DUE', 'RESERVED',\n'CHARGED', 'FAILED', 'CANCELLED', 'PARTIALLY_REFUNDED', 'REFUNDED',\n'PROCESSING'"
          },
          "transactionId": {
            "type": "string",
            "description": "Gets or sets contains null until the status has reached CHARGED"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets possible values include: 'INITIAL', 'RECURRING'"
          },
          "failureReason": {
            "type": "string",
            "description": "Gets or sets identifies the reason why the charged has been marked\nas `FAILED`:\n* `internal_error` - Something went wrong and the error couldn't be\ncategorized.\n* `insufficient_funds` - Payment was declined by the payer bank due\nto lack of funds.\n* `invalid_card` - The user tried to pay using a card that has\neither expired or is disabled by the issuer.\n* `verification_required` - Payment declined because the issuing\nbank requires verification, e.g. BankID/3DS.\n* `invalid_payment_source` - The provided payment source is\ndisabled or does not exist.\n. Possible values include: 'internal_error', 'insufficient_funds',\n'invalid_card', 'verification_required', 'invalid_payment_source'"
          },
          "failureDescription": {
            "type": "string",
            "description": "Gets or sets description for the failure reason"
          }
        },
        "additionalProperties": false,
        "description": "A remote charge."
      },
      "RemoteMandateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the Mollie mandate id."
          },
          "status": {
            "type": "string",
            "description": "the mandate status as reported by Mollie."
          },
          "method": {
            "type": "string",
            "description": "the payment method of this mandate.",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "description": "the Mollie customer id that owns this mandate."
          },
          "signatureDate": {
            "type": "string",
            "description": "the mandate signature date.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "the UTC timestamp when the mandate was created.",
            "format": "date-time"
          },
          "cardLabel": {
            "type": "string",
            "description": "the masked card label for credit card mandates.",
            "nullable": true
          },
          "cardLastFour": {
            "type": "string",
            "description": "the last four digits of the card.",
            "nullable": true
          },
          "cardExpiryDate": {
            "type": "string",
            "description": "the card expiry date.",
            "nullable": true
          },
          "cardHolder": {
            "type": "string",
            "description": "the card holder's name. Available for card mandates.",
            "nullable": true
          },
          "cardFingerprint": {
            "type": "string",
            "description": "unique alphanumeric representation of this specific card, for identifying returning customers. Available for card mandates.",
            "nullable": true
          },
          "consumerName": {
            "type": "string",
            "description": "the customer's name. Available for SEPA Direct Debit and PayPal mandates.",
            "nullable": true
          },
          "consumerAccount": {
            "type": "string",
            "description": "the customer's IBAN (SEPA Direct Debit) or email address (PayPal). Available for SEPA Direct Debit and PayPal mandates.",
            "nullable": true
          },
          "consumerBic": {
            "type": "string",
            "description": "the BIC of the customer's bank. Available for SEPA Direct Debit mandates.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response body for the live Mollie mandate state."
      },
      "RemotePaymentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the Mollie payment id (`tr_…`)."
          },
          "status": {
            "type": "string",
            "description": "the payment status as reported by Mollie."
          },
          "currency": {
            "type": "string",
            "description": "the payment amount currency."
          },
          "value": {
            "type": "string",
            "description": "the payment amount value as a decimal string."
          },
          "description": {
            "type": "string",
            "description": "a human-readable payment description.",
            "nullable": true
          },
          "checkoutUrl": {
            "type": "string",
            "description": "the checkout URL for completing the payment.",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "description": "the Mollie customer id associated with this payment.",
            "nullable": true
          },
          "mandateId": {
            "type": "string",
            "description": "the Mollie mandate id used for this payment.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "the payment method Mollie actually used/selected for this payment.",
            "nullable": true
          },
          "sequenceType": {
            "type": "string",
            "description": "the payment sequence type.",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "description": "the UTC timestamp when the payment was created.",
            "format": "date-time"
          },
          "paidAt": {
            "type": "string",
            "description": "the UTC timestamp when the payment was paid, or `null`.",
            "format": "date-time",
            "nullable": true
          },
          "failedAt": {
            "type": "string",
            "description": "the UTC timestamp when the payment failed, or `null`.",
            "format": "date-time",
            "nullable": true
          },
          "profileId": {
            "type": "string",
            "description": "the Mollie profile id that this payment belongs to.",
            "nullable": true
          },
          "cardLabel": {
            "type": "string",
            "description": "the card's brand/label (e.g. \"Visa\", \"Mastercard\"). Available for card payments once Mollie has detected it.",
            "nullable": true
          },
          "cardLastFour": {
            "type": "string",
            "description": "the last four digits of the card number. Available for card payments.",
            "nullable": true
          },
          "cardExpiryDate": {
            "type": "string",
            "description": "the card's expiry date in `YYYY-MM-DD` format. Available for card payments.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response body for the live Mollie payment state."
      },
      "RemoveAdditionalProductsRequest": {
        "type": "object",
        "properties": {
          "schedule": {
            "$ref": "#/components/schemas/Scheduling"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RemoveAdditonalProduct"
            },
            "description": "The products to add to the subscription."
          }
        },
        "additionalProperties": false,
        "description": "Request for removing additional products from a running subscription."
      },
      "RemoveAdditonalProduct": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "The identifier of the product, should match an existing product.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "The number of units to remove.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Properties for the product to remove."
      },
      "ReportingGroup": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A reporting group create."
      },
      "ReportingGroupView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReportingGroup"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "permanentDiscountIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets a list of identifiers of the permanent discounts."
          },
          "productIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets a list of identifiers of the products."
          }
        },
        "additionalProperties": false,
        "description": "A reporting group view."
      },
      "RequestForPayment": {
        "required": [
          "currency",
          "description"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "The amount for the payment, in the smallest possible units of the currency. For instance, 1 NOK should be 100.",
            "format": "int64"
          },
          "vatAmount": {
            "type": "integer",
            "description": "The amount of VAT to charge the payer, entered in the lowest monetary unit of the selected currency. E.g.: 10000 = 100.00 SEK, 5000 = 50.00 SEK.\nIf the amount given includes VAT, vatAmount may be displayed for the user in the payment page (interactive payments only).\nSet to 0 (zero) if there is no VAT amount reported.",
            "format": "int32"
          },
          "description": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "A description for the payment."
          },
          "currency": {
            "maxLength": 3,
            "minLength": 0,
            "type": "string",
            "description": "The currency the amount relates to."
          }
        },
        "additionalProperties": false,
        "description": "Properties relevant for a request for payment with SwedbankPay."
      },
      "ReversalResult": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "integer",
            "description": "The amount that was reversed.",
            "format": "int64"
          },
          "vatAmount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A simple record for reversal result details."
      },
      "ReversalTransaction": {
        "required": [
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The primary local identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "integer",
            "description": "The gross/total amount.",
            "format": "int64"
          },
          "vatAmount": {
            "type": "integer",
            "description": "The part of the amount that is VAT.",
            "format": "int64"
          },
          "currency": {
            "type": "string",
            "description": "The currency (if available).",
            "nullable": true
          },
          "createdTime": {
            "type": "string",
            "description": "The time of initial creation for this transaction.",
            "format": "date-time",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "The identifier of the transaction.",
            "format": "uuid"
          },
          "transaction": {
            "$ref": "#/components/schemas/Transaction"
          }
        },
        "additionalProperties": false,
        "description": "Represent a reversal of a previous transaction, either in full or partially. This is a new transaction that has a link to the original transaction, and should be treated as such in the read model. It is not a state change of the original transaction."
      },
      "RouteDeadline": {
        "type": "object",
        "properties": {
          "weekdays": {
            "type": "string",
            "description": "The weekdays."
          },
          "deadline": {
            "type": "string",
            "description": "The deadline."
          }
        },
        "additionalProperties": false,
        "description": "A route deadline."
      },
      "SAFTParameters": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Gets or sets the start time.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Gets or sets the end time.",
            "format": "date-time"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "testFile": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether we build a test file or not."
          }
        },
        "additionalProperties": false,
        "description": "Saft parameters."
      },
      "ScheduledAccountPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledPaymentRequest"
          }
        ],
        "properties": {
          "subscriberAccountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber account.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ScheduledCancellationBase": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledChangeBase"
          }
        ],
        "properties": {
          "reason": {
            "type": "string",
            "description": "An optional reason for cancellation.",
            "nullable": true
          },
          "ignoringContractSurcharge": {
            "type": "boolean",
            "description": "Whether the contract surcharge should be ignored."
          },
          "processingType": {
            "$ref": "#/components/schemas/ScheduledProcessingType"
          },
          "cancellationTime": {
            "type": "string",
            "description": "The cancellation time if processing is set to OnScheduledTime.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Base properties for a scheduled cancellation."
      },
      "ScheduledCancellationCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledCancellationBase"
          }
        ],
        "additionalProperties": false,
        "description": "A scheduled cancellation create."
      },
      "ScheduledCancellationUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledCancellationBase"
          }
        ],
        "additionalProperties": false,
        "description": "A scheduled cancellation update."
      },
      "ScheduledChangeBase": {
        "type": "object",
        "properties": {
          "schedule": {
            "$ref": "#/components/schemas/Scheduling"
          }
        },
        "additionalProperties": false,
        "description": "Base properties for a scheduled changed."
      },
      "ScheduledOrderPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledPaymentRequest"
          }
        ],
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the identifier of order.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ScheduledPaymentRequest": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentRequestBase"
          }
        ],
        "properties": {
          "plannedExecutionTime": {
            "type": "string",
            "description": "Gets the due date.",
            "format": "date-time"
          },
          "previousAttempts": {
            "type": "integer",
            "description": "Gets or sets the number of failed payment request attempts.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "ScheduledProcessingType": {
        "enum": [
          "Immediately",
          "OnScheduledTime",
          "OnRenewal"
        ],
        "type": "string",
        "description": ""
      },
      "ScheduledSubscriptionChange": {
        "type": "object",
        "properties": {
          "processingType": {
            "$ref": "#/components/schemas/ScheduledProcessingType"
          },
          "scheduledTime": {
            "type": "string",
            "description": "Gets or sets the scheduled time.",
            "format": "date-time",
            "nullable": true
          },
          "planSelection": {
            "$ref": "#/components/schemas/PlanSelection"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice contact.",
            "format": "uuid",
            "nullable": true
          },
          "removeExistingInvoiceContactId": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether to remove existing invoice contact identifier."
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A scheduled subscription change create."
      },
      "ScheduledSubscriptionChangeBase": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledChangeBase"
          }
        ],
        "properties": {
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.Contract"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "The identifier of the invoice contact to add.",
            "format": "uuid",
            "nullable": true
          },
          "removeExistingInvoiceContactId": {
            "type": "boolean",
            "description": "A value indicating whether to remove existing invoice contact identifier."
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber that owns the subscription.",
            "format": "uuid"
          },
          "planSelection": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.PlanSelection"
          },
          "processingType": {
            "$ref": "#/components/schemas/ScheduledProcessingType"
          },
          "scheduledTime": {
            "type": "string",
            "description": "The schedule time if processing is set to ScheduleTime.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Base properties for a scheduled subscription change."
      },
      "ScheduledSubscriptionChangeCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledSubscriptionChangeBase"
          }
        ],
        "additionalProperties": false,
        "description": "A scheduled subscription change create."
      },
      "ScheduledSubscriptionChangeUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledSubscriptionChangeBase"
          }
        ],
        "additionalProperties": false,
        "description": "A scheduled subscription change update."
      },
      "ScheduledSubscriptionPaymentRequestView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ScheduledPaymentRequest"
          }
        ],
        "properties": {
          "subscriptionId": {
            "type": "string",
            "description": "Gets the identifier of the subscription.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A payment request."
      },
      "Scheduling": {
        "required": [
          "processingType"
        ],
        "type": "object",
        "properties": {
          "processingType": {
            "$ref": "#/components/schemas/ScheduledProcessingType"
          },
          "time": {
            "type": "string",
            "description": "The schedule time if processing is set to ScheduleTime.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Parameters for defining the scheduling."
      },
      "SettingCreate": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the type."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A setting create."
      },
      "SettingView": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type."
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the value.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A setting view."
      },
      "SettlementAllowance": {
        "type": "object",
        "properties": {
          "transactionType": {
            "$ref": "#/components/schemas/AllowanceType"
          },
          "accountTransactionId": {
            "type": "string",
            "description": "The account transaction id.",
            "format": "uuid"
          },
          "paymentId": {
            "type": "string",
            "description": "The identifier of the payment (if a payment was involved).",
            "format": "uuid",
            "nullable": true
          },
          "accountingTime": {
            "type": "string",
            "description": "The accounting time.",
            "format": "date-time"
          },
          "sourcePaymentDemandId": {
            "type": "string",
            "description": "The identifier of the payment demand (if a demand was involved).",
            "format": "uuid",
            "nullable": true
          },
          "startTime": {
            "type": "string",
            "description": "The start time this allowance covered.",
            "format": "date-time",
            "nullable": true
          },
          "endTime": {
            "type": "string",
            "description": "The end time this allowance covered.",
            "format": "date-time",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "An optional text description for the transaction.",
            "nullable": true
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice.",
            "format": "uuid",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "integer",
            "description": "The invoice number.",
            "format": "int64",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "The amount of the allowance.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A settlement allowance."
      },
      "SettlementCharge": {
        "type": "object",
        "properties": {
          "accountTransactionId": {
            "type": "string",
            "description": "Gets or sets the identifier of the account transaction.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A settlement charge."
      },
      "SettlementConfiguration": {
        "type": "object",
        "properties": {
          "reminder": {
            "$ref": "#/components/schemas/ReminderHandlingConfiguration"
          }
        },
        "additionalProperties": false,
        "description": "Configuration options shared between various settlement policies."
      },
      "SettlementPayment": {
        "type": "object",
        "properties": {
          "paymentId": {
            "type": "string",
            "description": "The identifier of the payment as it exists in the payment service.",
            "format": "uuid"
          },
          "paidAmount": {
            "type": "number",
            "description": "The original paid amount (not the amount used to settle the demand, it may be higher than the demand amount).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A settlement payment."
      },
      "SettlementPolicyType": {
        "enum": [
          "None",
          "PercentOfDemand",
          "FixedAmountDifference"
        ],
        "type": "string",
        "description": "A bit-field of flags for specifying settlement policy types."
      },
      "SettlementTransactions": {
        "type": "object",
        "properties": {
          "generatedCharges": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettlementCharge"
            },
            "description": "The charges generated due to missing coverage on the demand."
          },
          "sourcePayments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettlementPayment"
            },
            "description": "The payments used to settle the parent demand."
          },
          "consumedAllowances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettlementAllowance"
            },
            "description": "The account allowances consumed to settle the demand."
          }
        },
        "additionalProperties": false,
        "description": "A settlement transactions."
      },
      "ShipmentStatusView": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "description": "The shipment status."
          },
          "transactionStatuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionStatusView"
            },
            "description": "The statuses of transactions in shipment."
          }
        },
        "additionalProperties": false,
        "description": "A shipment status view."
      },
      "SimplifiedTimeZoneInfoView": {
        "type": "object",
        "properties": {
          "timeZoneId": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "baseUtcOffset": {
            "type": "string",
            "description": "Gets or sets the base UTC offset."
          }
        },
        "additionalProperties": false,
        "description": "A simplified time zone information view."
      },
      "SpecificDeliveriesExportSettings": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DeliveriesExportSettingsBase"
          }
        ],
        "properties": {
          "deliveryIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryIdTypePair"
            },
            "description": "Get or set the delivery identifier and type pairs.",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "description": "Gets or sets the transaction type.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The specific deliveries export settings."
      },
      "StartAccountConnectResponse": {
        "type": "object",
        "properties": {
          "authorizationUrl": {
            "type": "string",
            "description": "Gets or sets the Mollie authorization URL."
          },
          "state": {
            "type": "string",
            "description": "Gets or sets the generated OAuth state returned to the caller."
          }
        },
        "additionalProperties": false,
        "description": "Response containing the Mollie authorization URL and generated OAuth state."
      },
      "StartAgreementRegistration": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/StartTerminalOrder"
          }
        ],
        "properties": {
          "initialPayment": {
            "$ref": "#/components/schemas/RequestForPayment"
          }
        },
        "additionalProperties": false,
        "description": "Parameters to start a new authorization for an agreement, with an optional initial payment."
      },
      "StartMandateRegistrationRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "the platform mandate identifier.\nIf not provided, a new identifier is generated.",
            "format": "uuid",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "description": "the Mollie account under which the mandate is registered.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "the platform subscriber identifier.",
            "format": "uuid"
          },
          "methods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MandateMethod"
            },
            "description": "the preferred payment methods for the Mollie checkout request.",
            "nullable": true
          },
          "amount": {
            "maximum": 1.7976931348623157E+308,
            "minimum": 0,
            "type": "number",
            "description": "the first payment amount (must be zero or positive). A value of `0` registers the\nmandate via a zero-amount first payment — Mollie only accepts this for card and PayPal;\nother methods (e.g. SEPA Direct Debit) will be rejected by Mollie's API and surfaced to\nthe caller as a validation problem.",
            "format": "double"
          },
          "currency": {
            "maxLength": 3,
            "type": "string",
            "description": "the payment currency (ISO 4217, e.g. `EUR`)."
          },
          "description": {
            "maxLength": 255,
            "type": "string",
            "description": "the description shown on the Mollie checkout page."
          },
          "redirectUrl": {
            "maxLength": 2048,
            "type": "string",
            "description": "the URL to redirect the customer to after payment.",
            "nullable": true
          },
          "cancelUrl": {
            "maxLength": 2048,
            "type": "string",
            "description": "the URL to redirect the customer to when the checkout is cancelled.",
            "nullable": true
          },
          "accounting": {
            "$ref": "#/components/schemas/Infosoft.S4.Mollie.Contracts.Accounting"
          },
          "customerProfile": {
            "$ref": "#/components/schemas/CustomerProfile"
          }
        },
        "additionalProperties": false,
        "description": "Request body for starting mandate registration."
      },
      "StartMandateRegistrationResponse": {
        "type": "object",
        "properties": {
          "mandateId": {
            "type": "string",
            "description": "The platform mandate identifier.",
            "format": "uuid"
          },
          "checkoutUrl": {
            "type": "string",
            "description": "The Mollie-hosted checkout URL to redirect the customer to.",
            "nullable": true
          },
          "initialPaymentId": {
            "type": "string",
            "description": "The identifier of the initial payment, if one exists.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Response body for starting mandate registration — carries the mandate ID and checkout URL."
      },
      "StartPaymentAuthorization": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/StartTerminalOrder"
          }
        ],
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/RequestForPayment"
          }
        },
        "additionalProperties": false,
        "description": "Parameters to start a new single payment authorization."
      },
      "StartTerminalOrder": {
        "required": [
          "accountId",
          "cancelUrl",
          "completeUrl",
          "currency",
          "description"
        ],
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The identifier of the account which the agreement should be associated with.",
            "format": "uuid"
          },
          "transactionId": {
            "type": "string",
            "description": "The identifier of the created transaction, if not given one will be generated.",
            "format": "uuid",
            "nullable": true
          },
          "cancelUrl": {
            "type": "string",
            "description": "The URL that Swedbank Pay will redirect back to IF the process is aborted.",
            "format": "uri"
          },
          "completeUrl": {
            "type": "string",
            "description": "The URL that Swedbank Pay will redirect back to once the payment instrument process is completed.",
            "format": "uri"
          },
          "callbackUrl": {
            "type": "string",
            "description": "An URL that will be invoked whenever new transactions occur on the payment order. Refer to the SwedbankPay docs for details.",
            "format": "uri",
            "nullable": true
          },
          "logoUrl": {
            "type": "string",
            "description": "Custom URL for Logo override when allowed in the SwedbankPay contract.",
            "format": "uri",
            "nullable": true
          },
          "hostUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            },
            "description": "List of allowed/valid host urls for the seamless view. Refer to the SwedbankPay docs for\ndetails.",
            "nullable": true
          },
          "paymentUrl": {
            "type": "string",
            "description": "An optional payment URL for seamless views redirects. Refer to the SwedbankPay docs for details.",
            "format": "uri",
            "nullable": true
          },
          "cultureName": {
            "type": "string",
            "description": "The culture name, determines default terminal language. This should be a culture name of the form ll-CC (language-country). Refer to Swedbank Pay docs for details.\nIn case nothing is given the system will fall back to Norwegian (nb-NO).",
            "nullable": true
          },
          "description": {
            "maxLength": 40,
            "minLength": 0,
            "type": "string",
            "description": "A description for the payment and/or the agreement registration."
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of order, even for non-payment transactions this is required."
          },
          "references": {
            "$ref": "#/components/schemas/ExternalReferences"
          },
          "accounting": {
            "$ref": "#/components/schemas/Accounting"
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "StopRuleCreate": {
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/StopRuleType"
          },
          "paymentStopRule": {
            "$ref": "#/components/schemas/PaymentStopRule"
          },
          "paymentRequestStopRule": {
            "$ref": "#/components/schemas/PaymentRequestStopRule"
          }
        },
        "additionalProperties": false,
        "description": "Request model for creating a stop rule on a dunning process.\nA stop rule automatically stops payment processing when certain conditions are met.\nOnly one stop rule of each type is allowed per dunning process."
      },
      "StopRuleType": {
        "enum": [
          "Payment",
          "PaymentRequest"
        ],
        "type": "string",
        "description": "Defines the available types of stop rules that can be applied to a dunning process.\nEach dunning process can have at most one stop rule of each type."
      },
      "StopRuleView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/StopRuleType"
          },
          "jsonView": {
            "type": "string",
            "description": "Gets or sets the json model."
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "Street": {
        "type": "object",
        "properties": {
          "streetName": {
            "type": "string",
            "description": "The street name."
          },
          "countryCode": {
            "type": "string",
            "description": "The country code."
          },
          "streetIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The street ids."
          },
          "city": {
            "type": "string",
            "description": "The city."
          },
          "isAliasMatch": {
            "type": "integer",
            "description": "Is allias match.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A street class."
      },
      "StreetNumber": {
        "type": "object",
        "properties": {
          "streetNo": {
            "type": "integer",
            "description": "The street number.",
            "format": "int32",
            "nullable": true
          },
          "addressId": {
            "type": "integer",
            "description": "The address identifier.",
            "format": "int32",
            "nullable": true
          },
          "entrance": {
            "type": "string",
            "description": "The entrance."
          },
          "houseType": {
            "type": "string",
            "description": "The house type."
          },
          "deliveryPointId": {
            "type": "integer",
            "description": "The delivery point identifier.",
            "format": "int32",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "The postal code."
          }
        },
        "additionalProperties": false,
        "description": "A street number class."
      },
      "SubmitPeppolDocumentRequest": {
        "required": [
          "accountId",
          "documentId",
          "documentType"
        ],
        "type": "object",
        "properties": {
          "documentType": {
            "$ref": "#/components/schemas/Infosoft.S4.EhfInvoice.Contracts.DocumentType"
          },
          "documentId": {
            "type": "string",
            "description": "The identifier of the document (used to retrieve it from the appropriate underlying service). Typically the InvoiceId or the CreditNoteId.",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "The identifier of the configured account (currently only VaxTransfer Accounts are supported).",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Properties for submitting a document to the PEPPOL network."
      },
      "SubscriberContact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the phone.",
            "format": "tel",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "format": "email",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "Gets or sets the zip code.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "addressLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the address lines.",
            "nullable": true
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Identification"
            },
            "description": "Gets or sets the various identifications of the organization.",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this object is primary."
          },
          "careOf": {
            "type": "string",
            "description": "Gets or sets the CareOf property.",
            "nullable": true
          },
          "source": {
            "type": "string",
            "description": "Source-field for use with external-validation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact."
      },
      "SubscriberContactView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the phone.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the email.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "Gets or sets the zip.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          },
          "addressLines": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the address lines."
          },
          "identifications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Identification"
            },
            "description": "Gets or sets the various identifications of the organization."
          },
          "careOf": {
            "type": "string",
            "description": "Gets or sets the CareOf property.",
            "nullable": true
          },
          "source": {
            "type": "string",
            "description": "Gets or sets the Source-field for use with external-validation.",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is primary."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact view."
      },
      "SubscriberCreate": {
        "type": "object",
        "properties": {
          "externalId": {
            "type": "string",
            "description": "Gets or sets the identifier of the external.",
            "nullable": true
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64",
            "nullable": true
          },
          "contact": {
            "$ref": "#/components/schemas/SubscriberContact"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber create."
      },
      "SubscriberDelivery": {
        "type": "object",
        "properties": {
          "deliveryId": {
            "type": "integer",
            "description": "The DI delivery identifier.",
            "format": "int64",
            "nullable": true
          },
          "fromDate": {
            "type": "string",
            "description": "The start of the delivery.",
            "format": "date-time",
            "nullable": true
          },
          "toDate": {
            "type": "string",
            "description": "The end of the delivery.",
            "format": "date-time",
            "nullable": true
          },
          "route": {
            "type": "string",
            "description": "The route of the delivery."
          },
          "distribution": {
            "type": "string",
            "description": "The distribution of the delivery."
          },
          "routeDeadline": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteDeadline"
            },
            "description": "The road deadlines."
          },
          "company": {
            "type": "string",
            "description": "The company."
          },
          "region": {
            "type": "string",
            "description": "The region."
          },
          "area": {
            "type": "string",
            "description": "The Area."
          },
          "regionAreaNumber": {
            "type": "string",
            "description": "The number of region area."
          },
          "edition": {
            "type": "string",
            "description": "The edition."
          },
          "product": {
            "type": "string",
            "description": "The product."
          },
          "weekdays": {
            "type": "string",
            "description": "The weekdays."
          },
          "labeled": {
            "type": "boolean",
            "description": "The labeled.",
            "nullable": true
          },
          "countryCode": {
            "type": "string",
            "description": "The country code."
          },
          "city": {
            "type": "string",
            "description": "The city."
          },
          "zip": {
            "type": "string",
            "description": "The zip."
          },
          "street": {
            "type": "string",
            "description": "The street."
          },
          "streetNumber": {
            "type": "integer",
            "description": "The street number.",
            "format": "int32",
            "nullable": true
          },
          "entrance": {
            "type": "string",
            "description": "The entrance."
          },
          "floorType": {
            "type": "string",
            "description": "The floor type."
          },
          "floor": {
            "type": "integer",
            "description": "The floor.",
            "format": "int32",
            "nullable": true
          },
          "flat": {
            "type": "integer",
            "description": "The flat.",
            "format": "int32",
            "nullable": true
          },
          "coAddress": {
            "type": "string",
            "description": "The co address."
          },
          "direction": {
            "type": "string",
            "description": "The direction."
          },
          "address1": {
            "type": "string",
            "description": "The address."
          },
          "address2": {
            "type": "string",
            "description": "The address."
          },
          "address3": {
            "type": "string",
            "description": "The address."
          },
          "address4": {
            "type": "string",
            "description": "The address."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber delivery."
      },
      "SubscriberExport": {
        "type": "object",
        "properties": {
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber export."
      },
      "SubscriberExportTotal": {
        "type": "object",
        "properties": {
          "userExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserExport"
            },
            "description": "Gets or sets the list of user exports."
          },
          "subscriberExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriberExport"
            },
            "description": "Gets or sets the list of subscriber exports."
          },
          "orderExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderExport"
            },
            "description": "Gets or sets the list of order exports."
          },
          "subscriptionExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionExport"
            },
            "description": "Gets or sets the list of subscription exports."
          },
          "paymentExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentExport"
            },
            "description": "Gets or sets the list of payment exports."
          },
          "deliveryExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeliveryExport"
            },
            "description": "Gets or sets the list of delivery exports."
          },
          "invoiceExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Invoice"
            },
            "description": "Gets or sets the list of invoice exports."
          },
          "ledgerExports": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriberLedgerExport"
            },
            "description": "Gets or sets the list of ledger exports."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber export total."
      },
      "SubscriberHistoryView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "externalId": {
            "type": "string",
            "description": "Gets or sets the identifier of the external."
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64"
          },
          "timeStamp": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the time stamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber history view."
      },
      "SubscriberLedgerBalanceCreate": {
        "required": [
          "amount",
          "currency",
          "ledgerDate"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "ledgerDate": {
            "type": "string",
            "description": "Gets or sets the ledger date.",
            "format": "date-time"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "text": {
            "type": "string",
            "description": "Gets or sets the text."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber ledger balance create."
      },
      "SubscriberLedgerExport": {
        "type": "object",
        "properties": {
          "ledgerDate": {
            "type": "string",
            "description": "Gets or sets the ledger date.",
            "format": "date-time"
          },
          "ledgerType": {
            "$ref": "#/components/schemas/LedgerType"
          },
          "text": {
            "type": "string",
            "description": "Gets or sets the text."
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          }
        },
        "additionalProperties": false,
        "description": "A ledger export."
      },
      "SubscriberLedgerView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/LedgerBaseView"
          }
        ],
        "properties": {
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscriber ledger view."
      },
      "SubscriberNote": {
        "type": "object",
        "properties": {
          "signature": {
            "type": "string",
            "description": "Gets or sets the signature. The signature."
          },
          "text": {
            "type": "string",
            "description": "Gets or sets the text. The text."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber note."
      },
      "SubscriberNoteView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "signature": {
            "type": "string",
            "description": "Gets or sets the signature. The signature.",
            "nullable": true
          },
          "text": {
            "type": "string",
            "description": "Gets or sets the text. The text.",
            "nullable": true
          },
          "timeStamp": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the time stamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber contact view."
      },
      "SubscriberNumberConfigurationView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "isLocallyGenerated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is locally generated."
          }
        },
        "additionalProperties": false,
        "description": "A subscriber number configuration view."
      },
      "SubscriberSequenceNumberConfiguration": {
        "type": "object",
        "properties": {
          "initialSubscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the initial subscriber number.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber sequence number configuration."
      },
      "SubscriberSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the source.",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "Gets or sets the identifier of the user.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Subscriber source model."
      },
      "SubscriberSourceCreate": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string",
            "description": "Get or set the user identifier",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The create source command"
      },
      "SubscriberTransferAccountTransaction": {
        "type": "object",
        "properties": {
          "targetBillingAccountId": {
            "type": "string",
            "description": "Identifier for the billing account.",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "description": "The reason for the transfer."
          },
          "accountingTime": {
            "type": "string",
            "description": "An optional accounting time for the transfer, if not given the current time will be used.",
            "format": "date-time",
            "nullable": true
          },
          "targetSubscriberId": {
            "type": "string",
            "description": "Identifier for the target subscriber.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Input for transfering an account transaction to a new account."
      },
      "SubscriberView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "externalId": {
            "type": "string",
            "description": "Gets or sets the identifier of the external."
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64"
          },
          "contact": {
            "$ref": "#/components/schemas/SubscriberContactView"
          }
        },
        "additionalProperties": false,
        "description": "A subscriber view."
      },
      "SubscriptionAgreementChange": {
        "type": "object",
        "properties": {
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the payment agreement identifier.",
            "format": "uuid"
          },
          "propagateChange": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [propagate change]."
          }
        },
        "additionalProperties": false,
        "description": "A subscription agreement change."
      },
      "SubscriptionCancel": {
        "type": "object",
        "properties": {
          "cancellationTime": {
            "type": "string",
            "description": "Gets or sets the cancellation time.",
            "format": "date-time",
            "nullable": true
          },
          "cancellationCause": {
            "type": "string",
            "description": "Gets or sets the cancellation cause.",
            "nullable": true
          },
          "ignoreContractSurcharge": {
            "type": "boolean",
            "description": "Gets or sets the ignore contract surcharge.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A cancel subscription."
      },
      "SubscriptionCancellationType": {
        "enum": [
          "Regular",
          "Automatic",
          "PaymentStop",
          "Pause",
          "PlanChange",
          "Delete"
        ],
        "type": "string",
        "description": "Values that represent subscription cancellation types."
      },
      "SubscriptionCreate": {
        "required": [
          "paymentAgreementId",
          "startTime",
          "subscriberId"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Identifier of the subscriber that owns/consumes this subscription.",
            "format": "uuid"
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "planSelection": {
            "$ref": "#/components/schemas/PlanSelection"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The identifier of the payment agreement to use when billing the subscription.",
            "format": "uuid"
          },
          "startTime": {
            "type": "string",
            "description": "The start time of the subscription, defaults to Now if not set.",
            "format": "date-time"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization that the subscription should be created for.\nIf not set the first available organization will be choosen.",
            "format": "uuid"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "The identifier of the invoice contact, if not set will default to the buyer/subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "The identifier of the enterprise plan if the subscription should be associated with one.",
            "format": "uuid",
            "nullable": true
          },
          "permanentDiscountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the permanent discount.",
            "format": "uuid",
            "nullable": true
          },
          "billingOptions": {
            "$ref": "#/components/schemas/BillingOptions"
          },
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Contract"
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscription create."
      },
      "SubscriptionExport": {
        "type": "object",
        "properties": {
          "subscriptionPackage": {
            "$ref": "#/components/schemas/SubscriptionPackageExport"
          },
          "startTime": {
            "type": "string",
            "description": "Gets or sets the start time.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Gets or sets the end time.",
            "format": "date-time"
          },
          "cancelled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the cancelled."
          },
          "isRenewed": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is renewed."
          },
          "renewedOn": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the renewed on.",
            "format": "date-time",
            "nullable": true
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationExport"
          }
        },
        "additionalProperties": false,
        "description": "A subscription export."
      },
      "SubscriptionPackageChainCreate": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "stepPosition": {
            "type": "integer",
            "description": "Gets the step position.",
            "format": "int32"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPackageChainStepCreate"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain."
      },
      "SubscriptionPackageChainExport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPackageChainStepExport"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain export."
      },
      "SubscriptionPackageChainStep": {
        "required": [
          "retain"
        ],
        "type": "object",
        "properties": {
          "step": {
            "type": "integer",
            "description": "Gets or sets the amount to increment by.",
            "format": "int32"
          },
          "nextSubscriptionPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the next package.",
            "format": "uuid"
          },
          "retain": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the retain."
          },
          "nextSubscriptionPackage": {
            "$ref": "#/components/schemas/SubscriptionPackageView"
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain step."
      },
      "SubscriptionPackageChainStepCreate": {
        "required": [
          "currency",
          "name",
          "retain"
        ],
        "type": "object",
        "properties": {
          "step": {
            "type": "integer",
            "description": "Gets or sets the amount to increment by.",
            "format": "int32"
          },
          "nextSubscriptionPackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the next package.",
            "format": "uuid",
            "nullable": true
          },
          "retain": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the retain."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the billing frequency.",
            "format": "int32",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions on this subscription.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "productItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanProduct"
            },
            "description": "Gets or sets the product items with quantities and unit prices.",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32"
          },
          "automaticStop": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the automatic stop."
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.AdditionalProduct"
            },
            "description": "Gets or sets additional products."
          },
          "renewalName": {
            "type": "string",
            "description": "Gets or sets the name of the package to be used after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Gets or sets the description of the package to be used after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain step create."
      },
      "SubscriptionPackageChainStepExport": {
        "type": "object",
        "properties": {
          "step": {
            "type": "integer",
            "description": "Gets or sets the amount to increment by.",
            "format": "int32"
          },
          "retain": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the retain."
          },
          "nextSubscriptionPackage": {
            "$ref": "#/components/schemas/SubscriptionPackageExport"
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain step export."
      },
      "SubscriptionPackageChainView": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "stepPosition": {
            "type": "integer",
            "description": "Gets the step position.",
            "format": "int32"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPackageChainStep"
            },
            "description": "Gets or sets the steps."
          }
        },
        "additionalProperties": false,
        "description": "A subscription package chain."
      },
      "SubscriptionPackageDraft": {
        "required": [
          "currency",
          "name"
        ],
        "type": "object",
        "properties": {
          "productItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanProduct"
            },
            "description": "Gets or sets the product items with quantities and unit prices.",
            "nullable": true
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the billing frequency.",
            "format": "int32"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32",
            "nullable": true
          },
          "packageChain": {
            "$ref": "#/components/schemas/SubscriptionPackageChainCreate"
          },
          "initialTermType": {
            "type": "integer",
            "description": "Gets or sets the type of the initial term.",
            "format": "int32",
            "nullable": true
          },
          "initialTermValue": {
            "type": "string",
            "description": "Gets or sets the initial term value.",
            "nullable": true
          },
          "initialTermPrice": {
            "type": "number",
            "description": "Gets or sets the initial term price.",
            "format": "double",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the automatic stop."
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.AdditionalProduct"
            },
            "description": "Gets or sets a included additional products."
          },
          "permanentDiscount": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.PermanentDiscount"
          },
          "renewalName": {
            "type": "string",
            "description": "Gets or sets the name of the package to be used after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Gets or sets the description of the package to be used after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A subscription package draft."
      },
      "SubscriptionPackageExport": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "description": {
            "type": "string",
            "description": "Gets or sets the description."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32"
          },
          "billingPlan": {
            "$ref": "#/components/schemas/BillingPlanExport"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductExport"
            },
            "description": "Gets or sets the products."
          },
          "subscriptionPackageChain": {
            "$ref": "#/components/schemas/SubscriptionPackageChainExport"
          },
          "initialTerm": {
            "$ref": "#/components/schemas/InitialPackageTerm"
          }
        },
        "additionalProperties": false,
        "description": "A subscription package export."
      },
      "SubscriptionPackageView": {
        "required": [
          "currency",
          "name",
          "products"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.SubscriptionPackageProductView"
            },
            "description": "Gets or sets the products."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the billing frequency.",
            "format": "int32",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions on this subscription.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "subscriptionPackageChain": {
            "$ref": "#/components/schemas/SubscriptionPackageChainView"
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32"
          },
          "initialTermType": {
            "type": "integer",
            "description": "Gets or sets the type of the initial term.",
            "format": "int32",
            "nullable": true
          },
          "initialTermValue": {
            "type": "string",
            "description": "Gets or sets the initial term value.",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the automatic stop."
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProductView"
            },
            "description": "Gets or sets a included additional products."
          },
          "totalAdditionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProductView"
            },
            "description": "Gets the total number of additional products."
          },
          "permanentDiscount": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.PermanentDiscount"
          },
          "renewalName": {
            "type": "string",
            "description": "Gets or sets the name of the package to be used after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Gets or sets the description of the package to be used after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A SubscriptionPackage view class."
      },
      "SubscriptionPaymentDemandView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentDemandView"
          }
        ],
        "additionalProperties": false,
        "description": "A subscription payment demand view."
      },
      "SubscriptionPlanCreate": {
        "required": [
          "plan"
        ],
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Identifier of the subscriber that owns this plan.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Identifier of the organisation this plan belongs to.",
            "format": "uuid"
          },
          "plan": {
            "$ref": "#/components/schemas/SubscriptionPlanDraft"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating a new subscription plan."
      },
      "SubscriptionPlanDraft": {
        "required": [
          "currency",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Display name of the plan."
          },
          "price": {
            "type": "number",
            "description": "Price of the plan including tax.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Identifier of the billing frequency.",
            "format": "int32"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Number of editions.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Identifier of the billing plan.",
            "format": "uuid"
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "ISO 4217 currency code."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Description of the plan.",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "Number of units.",
            "format": "int32",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "When true the subscription is automatically stopped after the initial term."
          },
          "productItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanProduct"
            },
            "description": "Product items with quantities and optional unit prices.",
            "nullable": true
          },
          "packageChain": {
            "$ref": "#/components/schemas/SubscriptionPlanDraftChain"
          },
          "initialTermType": {
            "type": "integer",
            "description": "Initial term type identifier.",
            "format": "int32",
            "nullable": true
          },
          "initialTermValue": {
            "type": "string",
            "description": "Initial term value.",
            "nullable": true
          },
          "initialTermPrice": {
            "type": "number",
            "description": "Price for the initial term.",
            "format": "double",
            "nullable": true
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPlanDraftAdditionalProduct"
            },
            "description": "Additional products included in this plan."
          },
          "permanentDiscount": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.PermanentDiscount"
          },
          "renewalName": {
            "type": "string",
            "description": "Display name of the package used after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Description of the package used after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An inline subscription plan definition to be created during order processing."
      },
      "SubscriptionPlanDraftAdditionalProduct": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "description": "Identifier of the product.",
            "format": "uuid"
          },
          "units": {
            "type": "integer",
            "description": "Number of units of this product.",
            "format": "int64"
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "includedInPlan": {
            "type": "boolean",
            "description": "When true the product is included in the plan price and cannot be removed from a running subscription."
          },
          "renewalAtListPrice": {
            "type": "boolean",
            "description": "When true the unit price is recalculated from the list price at renewal."
          }
        },
        "additionalProperties": false,
        "description": "An additional product to include in an inline subscription plan draft."
      },
      "SubscriptionPlanDraftChain": {
        "required": [
          "name",
          "steps"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string",
            "description": "Display name of the chain."
          },
          "description": {
            "type": "string",
            "description": "Description of the chain.",
            "nullable": true
          },
          "stepPosition": {
            "type": "integer",
            "description": "Position of the first step within the chain.",
            "format": "int32"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPlanDraftChainStep"
            },
            "description": "Steps that make up this chain."
          }
        },
        "additionalProperties": false,
        "description": "A package chain definition for an inline subscription plan draft."
      },
      "SubscriptionPlanDraftChainStep": {
        "required": [
          "currency",
          "name",
          "retain"
        ],
        "type": "object",
        "properties": {
          "step": {
            "type": "integer",
            "description": "The position increment to the next step.",
            "format": "int32"
          },
          "nextSubscriptionPackageId": {
            "type": "string",
            "description": "Identifier of the subscription package to transition to at this step.",
            "format": "uuid",
            "nullable": true
          },
          "retain": {
            "type": "boolean",
            "description": "When true the subscription is retained (not cancelled) at this step, and if this is the last step the subscription is retained indefinitely."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Display name of this step's package."
          },
          "price": {
            "type": "number",
            "description": "Price of this step's package including tax.",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Identifier of the billing frequency.",
            "format": "int32",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Number of editions.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "ISO 4217 currency code."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Description of this step's package.",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "Number of units.",
            "format": "int32"
          },
          "automaticStop": {
            "type": "boolean",
            "description": "When true the subscription is automatically stopped after the initial term."
          },
          "productItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanProduct"
            },
            "description": "Product items with quantities and optional unit prices for this step.",
            "nullable": true
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionPlanDraftAdditionalProduct"
            },
            "description": "Additional products included in this step."
          },
          "renewalName": {
            "type": "string",
            "description": "Display name of the package used after renewal if not retained.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Description of the package used after renewal if not retained.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A step in an inline subscription plan package chain draft."
      },
      "SubscriptionPlanView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the subscription plan.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Display name of the plan."
          },
          "description": {
            "type": "string",
            "description": "Optional human-readable description of what the plan covers.",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlanProductView"
            },
            "description": "Products included in the plan with their individual quantities and prices."
          },
          "unitPrice": {
            "type": "number",
            "description": "Tax-inclusive price per unit after any discount has been applied.",
            "format": "double"
          },
          "baseUnitPrice": {
            "type": "number",
            "description": "Tax-inclusive list/base price per unit before any discount.",
            "format": "double"
          },
          "price": {
            "type": "number",
            "description": "Total discounted price for all units (Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView.UnitPrice × Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView.Quantity).",
            "format": "double",
            "readOnly": true
          },
          "basePrice": {
            "type": "number",
            "description": "Total list/base price for all units (Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView.BaseUnitPrice × Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView.Quantity).",
            "format": "double",
            "readOnly": true
          },
          "quantity": {
            "type": "integer",
            "description": "Number of units covered by the plan.",
            "format": "int64"
          },
          "currency": {
            "type": "string",
            "description": "ISO 4217 currency code that applies to all monetary values on this plan."
          },
          "tax": {
            "type": "number",
            "description": "VAT/tax rate as a percentage (e.g. 25 for 25%).",
            "format": "double"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "References the billing frequency that controls how often the subscriber is charged.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "References the billing plan that governs payment terms and schedule.",
            "format": "uuid",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Maximum number of billing cycles before the plan automatically expires. Null means indefinite.",
            "format": "int32",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "When true, the subscription stops automatically at the end of the current billing period without requiring a cancellation action."
          },
          "initialTermType": {
            "type": "integer",
            "description": "Discriminator for the initial commitment term type (e.g. monthly, annual). Null if no fixed initial term applies.",
            "format": "int32",
            "nullable": true
          },
          "initialTermValue": {
            "type": "string",
            "description": "Value expression for the initial commitment term, interpreted together with Infosoft.S4.Subscriptions.Contracts.SubscriptionPlanView.InitialTermType.",
            "nullable": true
          },
          "permanentDiscount": {
            "$ref": "#/components/schemas/Infosoft.S4.Subscriptions.Contracts.PermanentDiscount"
          },
          "subscriptionPackageChain": {
            "$ref": "#/components/schemas/SubscriptionPackageChainView"
          },
          "additionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProductView"
            },
            "description": "Ad-hoc additional products included for subscriptions using this plan (they are implicitly part of the plan and does not affect proration, pricing etc)."
          },
          "renewalName": {
            "type": "string",
            "description": "Display name override used when the plan renews onto a successor plan. If left empty the current name is used.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "Description override used when the plan renews onto a successor plan. If left empty the current description is used.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Projection of a subscription plan, including product composition and pricing."
      },
      "SubscriptionRestart": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Gets or sets the start time.",
            "format": "date-time"
          },
          "packageName": {
            "type": "string",
            "description": "Gets or sets the name of the package.",
            "nullable": true
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid",
            "nullable": true
          },
          "forceRestart": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the restart should be forced."
          }
        },
        "additionalProperties": false,
        "description": "A subscription restart."
      },
      "SubscriptionView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid"
          },
          "subscriberAccount": {
            "type": "string",
            "description": "Gets or sets the subscriber account.",
            "format": "uuid",
            "nullable": true
          },
          "package": {
            "$ref": "#/components/schemas/SubscriptionPackageView"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "Gets or sets the identifier of the payment agreement.",
            "format": "uuid"
          },
          "startTime": {
            "type": "string",
            "description": "Gets or sets the start time.",
            "format": "date-time"
          },
          "endTime": {
            "type": "string",
            "description": "Gets or sets the end time.",
            "format": "date-time"
          },
          "cancelled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the cancelled."
          },
          "cancellationTime": {
            "type": "string",
            "description": "Gets or sets the cancellation time.",
            "format": "date-time",
            "nullable": true
          },
          "cancellationCause": {
            "type": "string",
            "description": "Gets or sets the cancellation cause.",
            "nullable": true
          },
          "cancellationType": {
            "$ref": "#/components/schemas/SubscriptionCancellationType"
          },
          "isRenewed": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is renewed."
          },
          "nextSubscription": {
            "type": "string",
            "description": "Gets or sets the next subscription.",
            "format": "uuid"
          },
          "nextInvoiceContactId": {
            "type": "string",
            "description": "Identifier of the next invoice contact if one has been scheduled.",
            "format": "uuid",
            "nullable": true
          },
          "renewedOn": {
            "type": "string",
            "description": "The time the subscription was renewed.",
            "format": "date-time",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The organization this subscription belongs to.",
            "format": "uuid"
          },
          "invoiceContactId": {
            "type": "string",
            "description": "The identifier of the current invoice contact if one is present.",
            "format": "uuid",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "format": "uuid",
            "nullable": true
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double"
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "description": "Gets or sets the tax.",
            "format": "double"
          },
          "billingOptions": {
            "$ref": "#/components/schemas/BillingOptions"
          },
          "contract": {
            "$ref": "#/components/schemas/ContractView"
          },
          "previousSubscription": {
            "type": "string",
            "description": "Gets or sets the previous subsription.",
            "format": "uuid",
            "nullable": true
          },
          "sourceType": {
            "type": "string",
            "description": "Gets or sets the type of the source.",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "An optional order reference.",
            "nullable": true
          },
          "purchasedAdditionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProductView"
            }
          }
        },
        "additionalProperties": false,
        "description": "A subscription view."
      },
      "Tag": {
        "type": "object",
        "properties": {
          "referenceId": {
            "type": "string",
            "description": "Gets or sets the reference identifier.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/TagType"
          },
          "value": {
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "TagType": {
        "enum": [
          "Unknown",
          "Subscriber",
          "SubscriberAccount",
          "Subscription",
          "Payment",
          "PaymentDemand"
        ],
        "type": "string",
        "description": "Type of tag"
      },
      "TaxCalculationPolicyForFee": {
        "enum": [
          "NoTax",
          "DistributionProportionalToProductValue"
        ],
        "type": "string",
        "description": "Values that represent fee tax calculation policy.\n            The chosen method determines how VAT is calculated on a given payment type fee."
      },
      "TaxGroup": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets the name of the group"
          },
          "percent": {
            "type": "number",
            "description": "Gets the tax rate expressed as a percentage",
            "format": "double"
          },
          "taxScheme": {
            "$ref": "#/components/schemas/TaxScheme"
          }
        },
        "additionalProperties": false,
        "description": "Represents a tax type/group by a name, code and percentage."
      },
      "TaxGroupView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The human identifiable name of the group."
          },
          "country": {
            "type": "string",
            "description": "The name of the country where the tax group is valid."
          },
          "taxPercent": {
            "type": "number",
            "description": "The percent.",
            "format": "double"
          },
          "startDate": {
            "type": "string",
            "description": "The start date.",
            "format": "date",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "description": "The expiry date.",
            "format": "date",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The description."
          },
          "productIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "List of products associated with this group."
          }
        },
        "additionalProperties": false,
        "description": "Properties of a tax group."
      },
      "TaxScheme": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "Gets the UN ECE 5153 Code Value."
          }
        },
        "additionalProperties": false,
        "description": "Code specifying a type of duty, tax or fee."
      },
      "TaxTotal": {
        "type": "object",
        "properties": {
          "taxAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "taxableAmount": {
            "$ref": "#/components/schemas/Amount"
          },
          "taxGroup": {
            "$ref": "#/components/schemas/TaxGroup"
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "TemplatePackageBillingFrequencyView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier.",
            "format": "uuid"
          },
          "templatePackageId": {
            "type": "string",
            "description": "The template package identifier.",
            "format": "uuid"
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "The billing frequency identifier.",
            "format": "int32"
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Optional number of editions.",
            "format": "int32",
            "nullable": true
          },
          "fullPrice": {
            "type": "number",
            "description": "The fullprice for this combination of products, billingfrequency and number of edition.",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A template package billing frequency view."
      },
      "TemplatePackageBillingPlanView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "templatePackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the template package.",
            "format": "uuid"
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A template package billing plan view."
      },
      "TemplatePackageChoices": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Set the start time for when the action should take effect. If not given a default will be used.",
            "format": "date-time",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Gets or sets the products.",
            "nullable": true
          },
          "billingFrequencyId": {
            "type": "integer",
            "description": "Gets or sets the identifier of the billing frequency.",
            "format": "int32",
            "nullable": true
          },
          "numberOfEditions": {
            "type": "integer",
            "description": "Gets or sets the number of editions.",
            "format": "int32",
            "nullable": true
          },
          "billingPlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the billing plan.",
            "format": "uuid",
            "nullable": true
          },
          "enterprisePlanId": {
            "type": "string",
            "description": "Gets or sets the identifier of the enterprise plan.",
            "format": "uuid",
            "nullable": true
          },
          "permanentDiscountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the permanent discount.",
            "format": "uuid",
            "nullable": true
          },
          "units": {
            "type": "integer",
            "description": "Gets or sets the units.",
            "format": "int32",
            "nullable": true
          },
          "automaticStop": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether [automatic stop].",
            "nullable": true
          },
          "priceOverride": {
            "type": "number",
            "description": "Gets or sets the price override.",
            "format": "double",
            "nullable": true
          },
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.Api.DataContracts.V1.Contract"
          }
        },
        "additionalProperties": false,
        "description": "A template package choices."
      },
      "TemplatePackageCreate": {
        "required": [
          "currency",
          "disabled",
          "name",
          "products"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "An optional organization identifier for the package.",
            "format": "uuid",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "A list of available product identifiers included in the package."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The name of the package."
          },
          "price": {
            "type": "number",
            "description": "The price for fixedprice-packages.",
            "format": "double",
            "nullable": true
          },
          "billingPlans": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "A list ov available billing plan identifiers.",
            "nullable": true
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency of the package."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "An optional description.",
            "nullable": true
          },
          "templatePackageRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatePackageRule"
            },
            "description": "A list of template package rules.",
            "nullable": true
          },
          "packageChainId": {
            "type": "string",
            "description": "An optional package chain identifier.",
            "format": "uuid",
            "nullable": true
          },
          "validFrom": {
            "type": "string",
            "description": "An optional from date for validity.",
            "format": "date-time",
            "nullable": true
          },
          "validUntil": {
            "type": "string",
            "description": "An optional until date for validity.",
            "format": "date-time",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "Availability of the package.",
            "default": false
          },
          "initialTerm": {
            "$ref": "#/components/schemas/InitialPackageTerm"
          },
          "includedAdditionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedAdditionalProduct"
            },
            "description": "A list of included additional products.",
            "nullable": true
          },
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.ProductService.Contracts.Contract"
          },
          "numberOfEditions": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "description": "A list of available number of editions."
          },
          "renewalName": {
            "type": "string",
            "description": "An optional name if we want to override after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "An optional description if we want to override after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A template package create."
      },
      "TemplatePackageProductView": {
        "required": [
          "taxPercent"
        ],
        "type": "object",
        "properties": {
          "templatePackageId": {
            "type": "string",
            "description": "Gets or sets the identifier of the template package.",
            "format": "uuid"
          },
          "productId": {
            "type": "string",
            "description": "Gets or sets the identifier of the product.",
            "format": "uuid"
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "taxPercent": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "Gets or sets the tax percent.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "A template package product view class."
      },
      "TemplatePackageRule": {
        "required": [
          "packageRuleId",
          "value"
        ],
        "type": "object",
        "properties": {
          "packageRuleId": {
            "$ref": "#/components/schemas/PackageRules"
          },
          "value": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the value."
          }
        },
        "additionalProperties": false,
        "description": "A template package rule."
      },
      "TemplatePackageUpdate": {
        "required": [
          "currency",
          "disabled",
          "name",
          "products"
        ],
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "string",
            "description": "An optional organization identifier for the package.",
            "format": "uuid",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "A list of available product identifiers included in the package."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "The name of the package."
          },
          "price": {
            "type": "number",
            "description": "The price for fixedprice-packages.",
            "format": "double",
            "nullable": true
          },
          "billingPlans": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "A list ov available billing plan identifiers."
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "The currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "An optional description.",
            "nullable": true
          },
          "templatePackageRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatePackageRule"
            },
            "description": "A list of template package rules.",
            "nullable": true
          },
          "packageChainId": {
            "type": "string",
            "description": "An optional package chain identifier.",
            "format": "uuid",
            "nullable": true
          },
          "validFrom": {
            "type": "string",
            "description": "An optional from date for validity.",
            "format": "date-time",
            "nullable": true
          },
          "validUntil": {
            "type": "string",
            "description": "An optional until date for validity.",
            "format": "date-time",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "Availability of the package.",
            "default": false
          },
          "initialTerm": {
            "$ref": "#/components/schemas/InitialPackageTerm"
          },
          "includedAdditionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IncludedAdditionalProduct"
            },
            "description": "A list of included additional products.",
            "nullable": true
          },
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.ProductService.Contracts.Contract"
          },
          "numberOfEditions": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "nullable": true
            },
            "description": "A list of available number of editions."
          },
          "renewalName": {
            "type": "string",
            "description": "An optional name if we want to override after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "type": "string",
            "description": "An optional description if we want to override after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A template package update."
      },
      "TemplatePackageView": {
        "required": [
          "billingFrequencies",
          "billingPlans",
          "currency",
          "disabled",
          "name",
          "products"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid",
            "nullable": true
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatePackageProductView"
            },
            "description": "Gets or sets the products."
          },
          "name": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name."
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price.",
            "format": "double",
            "nullable": true
          },
          "billingFrequencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatePackageBillingFrequencyView"
            },
            "description": "Gets or sets the billing frequencies."
          },
          "billingPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TemplatePackageBillingPlanView"
            },
            "description": "Gets or sets the billing plans."
          },
          "currency": {
            "minLength": 1,
            "type": "string",
            "description": "Gets or sets the currency."
          },
          "description": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description.",
            "nullable": true
          },
          "fullPrice": {
            "type": "number",
            "description": "Gets or sets the full price.",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "description": "Gets or sets the tax percent.",
            "format": "double"
          },
          "templatePackageRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Infosoft.S4.ProductService.Contracts.TemplatePackageRule"
            },
            "description": "Gets or sets the template package rules."
          },
          "packageChain": {
            "$ref": "#/components/schemas/PackageChainView"
          },
          "validFrom": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the valid from.",
            "format": "date-time",
            "nullable": true
          },
          "validUntil": {
            "type": "string",
            "description": "Gets or sets the Date/Time of the valid to.",
            "format": "date-time",
            "nullable": true
          },
          "disabled": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is disabled."
          },
          "initialTerm": {
            "$ref": "#/components/schemas/InitialTerm"
          },
          "includedAdditionalProducts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalProduct"
            },
            "description": "Gets or sets a included additional products."
          },
          "contract": {
            "$ref": "#/components/schemas/Infosoft.S4.ProductService.Contracts.Contract"
          },
          "renewalName": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the name of the package to be used after renewal.",
            "nullable": true
          },
          "renewalDescription": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "description": "Gets or sets the description of the package to be used after renewal.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A template package view."
      },
      "TemplatePlanReference": {
        "type": "object",
        "properties": {
          "templatePlanId": {
            "type": "string",
            "description": "Identifier of the template plan.",
            "format": "uuid"
          },
          "choices": {
            "$ref": "#/components/schemas/OrderChoices"
          }
        },
        "additionalProperties": false,
        "description": "Holds a reference to a centralized template plan together with any\nchoice overrides that should be applied when creating the subscription.\nThis bundles the template identifier and the override choices into a\nsingle object for clarity when selecting template-based plans."
      },
      "TemporaryAddressCreate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "newSubscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the new subscriber contact.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The temporary address create."
      },
      "TemporaryAddressUpdate": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "newSubscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the new subscriber contact.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "The temporary address update."
      },
      "TemporaryAddressView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PlannedChangeBase"
          }
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the temporary address.",
            "format": "uuid"
          },
          "newSubscriberContactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the new subscriber contact.",
            "format": "uuid"
          },
          "processed": {
            "type": "string",
            "description": "Gets or sets the time for when the delivery is processed.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The temporary address view."
      },
      "TokenDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The type of the token as defined by SwedbankPay (typically Unscheduled, Recurrence or Payment).",
            "nullable": true
          },
          "token": {
            "type": "string",
            "description": "The token value.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the token, typically the Card Mask.",
            "nullable": true
          },
          "expiryDate": {
            "type": "string",
            "description": "The expiry date of the token, typically equal to the Card Expiration.",
            "format": "date",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information/Details about a Swedbank Pay payment token."
      },
      "Transaction": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "Gets or sets the identifier of the account.",
            "format": "uuid"
          },
          "accounting": {
            "$ref": "#/components/schemas/Accounting"
          },
          "agreementReference": {
            "type": "string",
            "description": "Gets or sets the agreement reference. This will not be used for providers that don't create ageements until after the transaction has beeen completed.",
            "nullable": true
          },
          "amount": {
            "type": "integer",
            "description": "Gets or sets the amount.",
            "format": "int64"
          },
          "cancelledTime": {
            "type": "string",
            "description": "Gets or sets the cancelled time.",
            "format": "date-time",
            "nullable": true
          },
          "createdTime": {
            "type": "string",
            "description": "Gets or sets the created time.",
            "format": "date-time",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "The currency.",
            "nullable": true
          },
          "flowType": {
            "type": "string",
            "description": "Gets or sets the type of the flow.",
            "nullable": true
          },
          "orderReference": {
            "type": "string",
            "description": "Gets or sets the order reference.",
            "nullable": true
          },
          "payeeReference": {
            "type": "string",
            "description": "Gets or sets the payee reference.",
            "nullable": true
          },
          "references": {
            "$ref": "#/components/schemas/ExternalReferences"
          },
          "state": {
            "type": "string",
            "description": "Gets or sets the state of the transaction.",
            "nullable": true
          },
          "terminalRedirectUrl": {
            "type": "string",
            "description": "Gets or sets the terminal redirect URL that was created by payex",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "The identifier of the transaction.",
            "format": "uuid"
          },
          "transactionReference": {
            "type": "string",
            "description": "The transaction reference created by SwedbankPay - typically denoted TransactionNumber.",
            "nullable": true
          },
          "reversals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReversalTransaction"
            },
            "description": "Gets the reversals associated with this transaction (if any).",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Information about the transaction."
      },
      "TransactionCreate": {
        "type": "object",
        "properties": {
          "mandateId": {
            "type": "string",
            "description": "Get or set the mandate identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "The DueDate, assumed to be local to the Norwegian timezone. Any time parts specified will be ignored.",
            "format": "date-time"
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Get or set the external invoice identifier."
          },
          "importedOn": {
            "type": "string",
            "description": "Get or set the date of import.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Autogiro transactions create."
      },
      "TransactionStatusView": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "The transaction status code."
          },
          "status": {
            "type": "string",
            "description": "The transaction status."
          },
          "text": {
            "type": "string",
            "description": "The transaction status text."
          }
        },
        "additionalProperties": false,
        "description": "A transaction status view."
      },
      "TransactionView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the mandate identifier",
            "format": "uuid"
          },
          "mandate": {
            "$ref": "#/components/schemas/Infosoft.S4.PaymentAgreements.Contracts.Autogiro.MandateView"
          },
          "amount": {
            "type": "number",
            "description": "Get or set the amount.",
            "format": "double"
          },
          "dueDate": {
            "type": "string",
            "description": "Get or set the due date.",
            "format": "date-time"
          },
          "isCancelled": {
            "type": "boolean",
            "description": "Get or set the transaction cencellation."
          },
          "exportDate": {
            "type": "string",
            "description": "Get or set the date of export.",
            "format": "date-time",
            "nullable": true
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "Get or set the external invoice identifier."
          }
        },
        "additionalProperties": false,
        "description": "Class represents an Autogiro transaction."
      },
      "UpdateAccount": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "True to enable, false to disable."
          },
          "displayName": {
            "type": "string",
            "description": "Name of the display."
          },
          "useTestEnvironment": {
            "type": "boolean",
            "description": "True to use test environment."
          },
          "bankAccount": {
            "type": "string",
            "description": "Bank Account information for payment of invoices.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "All fields will be replaced."
      },
      "UpdatePayment": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/CreatePayment"
          }
        ],
        "additionalProperties": false,
        "description": ""
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Get or set the user identifier",
            "format": "uuid"
          },
          "identityProviderId": {
            "type": "string",
            "description": "Gets or sets the identity provider identifier.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "Gets or sets the external identifier."
          }
        },
        "additionalProperties": false,
        "description": "The user"
      },
      "UserClaimsCredentials": {
        "required": [
          "password",
          "username"
        ],
        "type": "object",
        "properties": {
          "username": {
            "minLength": 1,
            "type": "string",
            "description": "The user name"
          },
          "password": {
            "minLength": 1,
            "type": "string",
            "description": "The password."
          }
        },
        "additionalProperties": false,
        "description": "The user claims credentials"
      },
      "UserCreate": {
        "type": "object",
        "properties": {
          "identityProviderId": {
            "type": "string",
            "description": "Gets or sets the identifier of the identity provider.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber.",
            "format": "uuid",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "description": "Gets or sets the external identifier."
          }
        },
        "additionalProperties": false,
        "description": "The user create"
      },
      "UserExport": {
        "type": "object",
        "properties": {
          "identityProvider": {
            "type": "string",
            "description": "Gets or sets the identity provider."
          },
          "identityProviderId": {
            "type": "string",
            "description": "Gets or sets the identifier of the identity provider."
          },
          "displayName": {
            "type": "string",
            "description": "Gets or sets the display name."
          },
          "startDate": {
            "type": "string",
            "description": "Gets or sets the start date. User is not active in the system before this date.",
            "format": "date-time"
          },
          "stopDate": {
            "type": "string",
            "description": "Gets or sets the stop date. User is not active after this date.",
            "format": "date-time"
          },
          "deleteDate": {
            "type": "string",
            "description": "Gets or sets the delete date. User is anonymized after this date.",
            "format": "date-time",
            "nullable": true
          },
          "groups": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the groups."
          }
        },
        "additionalProperties": false,
        "description": "A user export."
      },
      "UserInfo": {
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "otherAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "A list with the end user's  addresses, if any. This list can contain an address with the\naddress_type home, work, and/or other, if the user has registered them in the Vipps app.",
            "nullable": true
          },
          "birthdate": {
            "type": "string",
            "description": "User's birthday formatted as YYYY-MM-DD",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Uuser's email address registered with Vipps",
            "nullable": true
          },
          "emailVerified": {
            "type": "boolean",
            "description": "A value indicating if the End user's email address is verified.",
            "nullable": true
          },
          "familyName": {
            "type": "string",
            "description": "Surname(s) or last name(s) of the end user.",
            "nullable": true
          },
          "givenName": {
            "type": "string",
            "description": "Given name(s) or first name(s) of the end user. Note \nthat in some cultures, people can have multiple given names; all\ncan be present, with the names being separated by space characters.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "User's full name in displayable form including all\nname parts, possibly including titles and suffixes, ordered\naccording to the End-User's locale and preferences.",
            "nullable": true
          },
          "nin": {
            "type": "string",
            "description": "National identity number",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "description": "User's telephone number on MSISDN format, up to 15 digits.",
            "nullable": true
          },
          "sid": {
            "type": "string",
            "description": "Ssession identifier - This represents a Session of a\nUser Agent or device. Currently not in use",
            "nullable": true
          },
          "sub": {
            "type": "string",
            "description": "Subject Identifier for the user in Vipps.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about the user."
      },
      "ValidationError": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "The field that has the error",
            "nullable": true
          },
          "message": {
            "type": "string",
            "description": "The message for the validation error.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a validation error."
      },
      "ValidationResultModel": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Gets or sets the general message.",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "description": "Gets or sets the specific validation errors."
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates the result of a validation."
      },
      "VippsAccountCreate": {
        "required": [
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "apiCredentials": {
            "$ref": "#/components/schemas/Credentials"
          },
          "merchantAccountNumber": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "description": "The merchant serial number as provided by VippsMobilePay.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "Human Readable Display name of the Account."
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization owning the account",
            "format": "uuid"
          },
          "useTestEnvironment": {
            "type": "boolean",
            "description": "A value indicating whether to use the VippsMobilePay test environment, if not set (default) the production environment will be used."
          },
          "useCustomAPICredentials": {
            "type": "boolean",
            "description": "A value indicating whether to use custom API credentials, if false (default), the Infosoft Partner keys will be utilized."
          },
          "countryCode": {
            "minLength": 1,
            "pattern": "NO|FI|DK",
            "type": "string",
            "description": "Represent the operation country of the Account."
          },
          "agreementDeactivationBehaviour": {
            "$ref": "#/components/schemas/AgreementDeactivationBehaviour"
          }
        },
        "additionalProperties": false,
        "description": "Parameters for creating a new VippsMobilePay Account."
      },
      "VippsMobilePayOrderParameters": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseVippsOrderParameters"
          }
        ],
        "properties": {
          "profileScope": {
            "type": "string",
            "description": "The profile/userdata scope to require permission for. Given as a space separated list of values.",
            "nullable": true,
            "example": "name address email"
          },
          "accountId": {
            "type": "string",
            "description": "(Recommended) The identifier of the VippsMobilePay account to use. \n\n            If not given an attempt will be made to resolve one based on the OrganizationId on the ordered subscription.",
            "format": "uuid",
            "nullable": true
          },
          "generateSubscriberContact": {
            "type": "boolean",
            "description": "Indicates whether to attempt to generate a subscriber contact based on the profile\ninformation from Vipps MobilePay.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Order parameters for Vipps|MobilePay agreement registration."
      },
      "VippsOrderParameters": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseVippsOrderParameters"
          }
        ],
        "additionalProperties": false,
        "description": "Order parameters for Vipps agreement registration."
      },
      "WebHookStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "type": {
            "type": "string",
            "description": "Gets or sets the type."
          },
          "topic": {
            "type": "string",
            "description": "Gets or sets the topic."
          },
          "endpointUrl": {
            "type": "string",
            "description": "Gets or sets URL of the endpoint."
          },
          "provisioningState": {
            "type": "string",
            "description": "Gets or sets the state of the provisioning."
          },
          "filteredEventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets a list of types of the filtered events."
          }
        },
        "additionalProperties": false,
        "description": "A web hook status."
      },
      "WebhookCreate": {
        "required": [
          "endpoint",
          "eventTypes"
        ],
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "description": "The endpoint for the webhook, must be on the form https://domain/resource.",
            "format": "uri"
          },
          "eventTypes": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Types of the events this endpoints should receive."
          },
          "disableValidation": {
            "type": "boolean",
            "description": "Disable the local validation.\n            \nSet this to true if you require manual/async validation as described in the documentation.\nBasically if this is not set, a simple fake-prevalidation event will be sent to determine if there is something listening in the other end. \n\n            Additionally the \"true\" validation event will be sent once the request is processed in the backend and dispatched to the underlying infrastructure. \n\n\n            If it is set, the fake-prevalidation event is skipped and only the underlying infrastructure will validate the endpoint. \n\n            Then end result being you may get an okay status from this API but the creation may still fail due to validation errors."
          }
        },
        "additionalProperties": false,
        "description": "Container to create or update an event subscription."
      },
      "WebhookView": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "description": "Gets or sets the endpoint for the web hook."
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name."
          },
          "eventTypes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets a list of types of events send to this hook."
          }
        },
        "additionalProperties": false,
        "description": "A subscription for events to be sent to an endpoint URL."
      },
      "WeekDayPatternContract": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternContract"
          }
        ],
        "properties": {
          "weekDay": {
            "$ref": "#/components/schemas/DayOfWeek"
          }
        },
        "additionalProperties": false,
        "description": "A week day pattern contract."
      },
      "WeekDayPatternView": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/PatternView"
          }
        ],
        "properties": {
          "weekDay": {
            "$ref": "#/components/schemas/DayOfWeek"
          }
        },
        "additionalProperties": false,
        "description": "A week day pattern view."
      },
      "WriteOffAccountTransactions": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "transactions": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "description": "A list of transactions to write off.",
            "nullable": true
          },
          "reason": {
            "minLength": 1,
            "type": "string",
            "description": "The reason/description for the write off."
          },
          "accountingTime": {
            "type": "string",
            "description": "An optional accounting time, if not set the current time will be used.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Properties for writing off account transactions"
      },
      "WriteOffPaymentDemand": {
        "required": [
          "writeOffReason"
        ],
        "type": "object",
        "properties": {
          "writeOffReason": {
            "type": "string",
            "description": "The descriptive reasoning for the write off action."
          },
          "writeOffTime": {
            "type": "string",
            "description": "The time of the write off, if not specified will default to the time of command processing.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Provides information needed to write off a payment demand (in full), without creating a credit note."
      },
      "Z_EVENT_com.info-subscription.CreditNoteIssued": {
        "title": "com.info-subscription.CreditNoteIssued",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Invoices.Invoice"
          }
        ],
        "properties": {
          "issueDate": {
            "type": "string",
            "description": "Gets or sets the issue date.",
            "format": "date-time"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the original invoice identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A credit note issued."
      },
      "Z_EVENT_com.info-subscription.EmailDomainAuthorizationGranted": {
        "title": "com.info-subscription.EmailDomainAuthorizationGranted",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.EmailDomainAuthorization"
          }
        ],
        "additionalProperties": false,
        "description": "The email domain authorization granted."
      },
      "Z_EVENT_com.info-subscription.EmailDomainAuthorizationRevoked": {
        "title": "com.info-subscription.EmailDomainAuthorizationRevoked",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.EmailDomainAuthorization"
          }
        ],
        "additionalProperties": false,
        "description": "The email domain authorization revoked."
      },
      "Z_EVENT_com.info-subscription.InvoiceIssued": {
        "title": "com.info-subscription.InvoiceIssued",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Invoices.Invoice"
          }
        ],
        "properties": {
          "issueDate": {
            "type": "string",
            "description": "Gets or sets the issue date.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "An invoice issued."
      },
      "Z_EVENT_com.info-subscription.InvoicePaid": {
        "title": "com.info-subscription.InvoicePaid",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Invoices.Invoice"
          }
        ],
        "additionalProperties": false,
        "description": "Indicates an invoice has been marked as paid."
      },
      "Z_EVENT_com.info-subscription.OrderProcessed": {
        "title": "com.info-subscription.OrderProcessed",
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "The identifier of the order.",
            "format": "uuid"
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization the order belongs to.",
            "format": "uuid"
          },
          "subscriptionId": {
            "type": "string",
            "description": "The identifier of the subscription  that this order will create",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of subscriber.",
            "format": "uuid"
          },
          "externalSubscriberId": {
            "type": "string",
            "description": "An optional external identifier of the subscriber.",
            "nullable": true
          },
          "subscriptionCreated": {
            "type": "boolean",
            "description": "Indicator of wether the subscription this order should create has been processed."
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a processed order."
      },
      "Z_EVENT_com.info-subscription.PaymentProcessingFailed": {
        "title": "com.info-subscription.PaymentProcessingFailed",
        "type": "object",
        "properties": {
          "paymentProviderType": {
            "type": "string",
            "description": "The payment provider type."
          },
          "operationType": {
            "type": "string",
            "description": "An optional operation type, not all providers support this so it may be null.",
            "nullable": true
          },
          "result": {
            "type": "string",
            "description": "The JSON result from provider.",
            "nullable": true
          },
          "transactionId": {
            "type": "string",
            "description": "The transaction identifier.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Event represents a PaymentProcessingFailed class."
      },
      "Z_EVENT_com.info-subscription.PaymentRequestProcessed": {
        "title": "com.info-subscription.PaymentRequestProcessed",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "The identifier of the invoice which the request is supposed to pay.",
            "format": "uuid",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The identifier of the payment agreement.",
            "format": "uuid"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "The identifier of the payment demand.",
            "format": "uuid",
            "nullable": true
          },
          "paymentProviderType": {
            "type": "string",
            "description": "The type of the provider, such as PayEx, PayExEcommerce, AvtaleGiro, Vipps etc."
          },
          "processedTime": {
            "type": "string",
            "description": "The time the request was processed.",
            "format": "date-time"
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid"
          },
          "transactionId": {
            "type": "string",
            "description": "The identifier of the internal provider transaction. Use this to lookup the actual execution result/status.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A payment request processed."
      },
      "Z_EVENT_com.info-subscription.PaymentRequestScheduled": {
        "title": "com.info-subscription.PaymentRequestScheduled",
        "type": "object",
        "properties": {
          "invoiceId": {
            "type": "string",
            "description": "The invoice id.",
            "format": "uuid",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The identifier of the payment request",
            "format": "uuid"
          },
          "paymentAgreementId": {
            "type": "string",
            "description": "The identifier of the payment agreement.",
            "format": "uuid"
          },
          "externalInvoiceIdentifier": {
            "type": "string",
            "description": "The external invoice identifier.",
            "nullable": true
          },
          "paymentProviderType": {
            "type": "string",
            "description": "The type of the provider, such as PayEx, PayExEcommerce, AvtaleGiro, Vipps etc.",
            "nullable": true
          },
          "organizationId": {
            "type": "string",
            "description": "The identifier of the organization.",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "The identifier of the subscriber.",
            "format": "uuid"
          },
          "paymentDemandId": {
            "type": "string",
            "description": "The payment demand identifier",
            "format": "uuid",
            "nullable": true
          },
          "previousAttempts": {
            "type": "integer",
            "description": "The number of previous attempts to pay the demand.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A payment request created."
      },
      "Z_EVENT_com.info-subscription.ReminderIssued": {
        "title": "com.info-subscription.ReminderIssued",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the identifier of the reminder.",
            "format": "uuid"
          },
          "number": {
            "type": "integer",
            "description": "Gets or sets the number of.",
            "format": "int64"
          },
          "organizationId": {
            "type": "string",
            "description": "Gets or sets the identifier of the organization.",
            "format": "uuid"
          },
          "invoiceId": {
            "type": "string",
            "description": "Gets or sets the identifier of the invoice.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "A reminder issued."
      },
      "Z_EVENT_com.info-subscription.SubscriberContactCreated": {
        "title": "com.info-subscription.SubscriberContactCreated",
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber",
            "format": "uuid"
          },
          "contactId": {
            "type": "string",
            "description": "Gets or sets the contact identifier.",
            "format": "uuid"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is primary."
          },
          "source": {
            "type": "string",
            "description": "Source-field for use with external-validation."
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a subscriber contact created."
      },
      "Z_EVENT_com.info-subscription.SubscriberContactDeleted": {
        "title": "com.info-subscription.SubscriberContactDeleted",
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber contact",
            "format": "uuid"
          },
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a subscriber deleted."
      },
      "Z_EVENT_com.info-subscription.SubscriberContactUpdated": {
        "title": "com.info-subscription.SubscriberContactUpdated",
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber",
            "format": "uuid"
          },
          "contactId": {
            "type": "string",
            "description": "Gets or sets the contact identifier.",
            "format": "uuid"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this instance is primary."
          },
          "source": {
            "type": "string",
            "description": "Source-field for use with external-validation."
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a subscriber contact updated."
      },
      "Z_EVENT_com.info-subscription.SubscriberCreated": {
        "title": "com.info-subscription.SubscriberCreated",
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber",
            "format": "uuid"
          },
          "externalId": {
            "type": "string",
            "description": "Gets or sets the identifier of the external."
          },
          "subscriberNumber": {
            "type": "integer",
            "description": "Gets or sets the subscriber number.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a subscriber created."
      },
      "Z_EVENT_com.info-subscription.SubscriberDeleted": {
        "title": "com.info-subscription.SubscriberDeleted",
        "type": "object",
        "properties": {
          "subscriberId": {
            "type": "string",
            "description": "Gets or sets the identifier of the subscriber",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Data represeting a subscriber deleted."
      },
      "Z_EVENT_com.info-subscription.SubscriptionCancelled": {
        "title": "com.info-subscription.SubscriptionCancelled",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Subscriptions.Subscription"
          }
        ],
        "properties": {
          "cancellationTime": {
            "type": "string",
            "description": "Indicates the time of when the cancellation should be effective from. This may be null.",
            "format": "date-time",
            "nullable": true
          },
          "cancellationType": {
            "type": "integer",
            "description": "Indicates the type of cancellation. This may be null.",
            "format": "int32",
            "nullable": true
          },
          "cancellationCause": {
            "type": "string",
            "description": "Typically a human readable descriptive reason for the cancellation. This may be null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Data representing a cancelled subscription"
      },
      "Z_EVENT_com.info-subscription.SubscriptionCreated": {
        "title": "com.info-subscription.SubscriptionCreated",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Subscriptions.Subscription"
          }
        ],
        "properties": {
          "startTime": {
            "type": "string",
            "description": "Indicates the starting time of the subscription (this might be a future date or a past date).",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "A subscription created."
      },
      "Z_EVENT_com.info-subscription.SubscriptionDeactivated": {
        "title": "com.info-subscription.SubscriptionDeactivated",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Subscriptions.Subscription"
          }
        ],
        "properties": {
          "paymentAgreementId": {
            "type": "string",
            "description": "The identifier of the INFO-Subscription payment agreement associated with the subscription.",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Indicates that a subscription has been deactived (for instance its cancellation time has been reached)."
      },
      "Z_EVENT_com.info-subscription.UserAuthorizationGranted": {
        "title": "com.info-subscription.UserAuthorizationGranted",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.UserAuthorization"
          }
        ],
        "additionalProperties": false,
        "description": "The user authorization granted."
      },
      "Z_EVENT_com.info-subscription.UserAuthorizationRevoked": {
        "title": "com.info-subscription.UserAuthorizationRevoked",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Infosoft.S4.EventNotification.Contracts.Integration.EventData.Users.UserAuthorization"
          }
        ],
        "additionalProperties": false,
        "description": "The user authorization revoked."
      }
    },
    "parameters": {
      "QuerySelect": {
        "name": "$select",
        "in": "query",
        "description": "Returns only the selected properties.",
        "schema": {
          "type": "string"
        }
      },
      "QueryExpand": {
        "name": "$expand",
        "in": "query",
        "description": "Include related entities inline (e.g., Children, Locations).",
        "schema": {
          "type": "string"
        }
      },
      "QueryFilter": {
        "name": "$filter",
        "in": "query",
        "description": "Filter the response using OData filter queries.",
        "schema": {
          "type": "string"
        }
      },
      "QueryTop": {
        "name": "$top",
        "in": "query",
        "description": "Number of objects to return (e.g., 25).",
        "schema": {
          "type": "string"
        }
      },
      "QuerySkip": {
        "name": "$skip",
        "in": "query",
        "description": "Number of objects to skip in the current order (e.g., 50).",
        "schema": {
          "type": "string"
        }
      },
      "QueryOrderby": {
        "name": "$orderby",
        "in": "query",
        "description": "Define the order by one or more properties (e.g., LastModified).",
        "schema": {
          "type": "string"
        }
      },
      "S4-TenantId": {
        "name": "S4-TenantId",
        "in": "header",
        "description": "The INFO-Subscription Tenant Id",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "securitySchemes": {
      "Adb2c": {
        "type": "openIdConnect",
        "description": "Open ID Connection Authentication and Authorizaiton for Adb2c",
        "openIdConnectUrl": "https://prodlogins4.b2clogin.com/prodlogins4.onmicrosoft.com/B2C_1A_V2SIGNIN/v2.0/.well-known/openid-configuration"
      },
      "Adb2cIdentityPlatform": {
        "type": "openIdConnect",
        "description": "Open ID Connection Authentication and Authorizaiton for Adb2cIdentityPlatform",
        "openIdConnectUrl": "https://login.microsoftonline.com/7bdcdd56-3ba6-4e6d-a841-db4816d7909d/v2.0/.well-known/openid-configuration"
      }
    }
  },
  "security": [
    { },
    { }
  ],
  "tags": [
    {
      "name": "AccountSource"
    },
    {
      "name": "ADB2CAccount"
    },
    {
      "name": "Auth0Account"
    },
    {
      "name": "AutoGiro"
    },
    {
      "name": "AvtaleGiro"
    },
    {
      "name": "BalanceInvoiceSetting"
    },
    {
      "name": "BetalingsService"
    },
    {
      "name": "BillingAccount",
      "description": "Work with Billing Accounts and their related transactions."
    },
    {
      "name": "BillingFrequency"
    },
    {
      "name": "BillingPlan"
    },
    {
      "name": "Calendar"
    },
    {
      "name": "Category"
    },
    {
      "name": "Configuration"
    },
    {
      "name": "CreditNote"
    },
    {
      "name": "CreditNoteFile"
    },
    {
      "name": "Delivery"
    },
    {
      "name": "Demands"
    },
    {
      "name": "DemandSchedule"
    },
    {
      "name": "DemandScheduleReminder"
    },
    {
      "name": "DenialOrder"
    },
    {
      "name": "DenialOrderConfiguration"
    },
    {
      "name": "DomainAuthorization"
    },
    {
      "name": "DunningProcess"
    },
    {
      "name": "EFaktura"
    },
    {
      "name": "EhfValidation"
    },
    {
      "name": "EmailDomainAuthorizationSource"
    },
    {
      "name": "EnterprisePlan"
    },
    {
      "name": "EnterprisePlanLedger"
    },
    {
      "name": "Events"
    },
    {
      "name": "Export"
    },
    {
      "name": "ExternalStaticProductSource"
    },
    {
      "name": "File"
    },
    {
      "name": "Identifications"
    },
    {
      "name": "IdentityProvider"
    },
    {
      "name": "Invoice"
    },
    {
      "name": "InvoiceConfiguration"
    },
    {
      "name": "InvoiceExport"
    },
    {
      "name": "InvoiceFile"
    },
    {
      "name": "InvoiceIdentifier"
    },
    {
      "name": "Ledger"
    },
    {
      "name": "MobilePay"
    },
    {
      "name": "Vipps"
    },
    {
      "name": "Mollie"
    },
    {
      "name": "Order"
    },
    {
      "name": "Organization"
    },
    {
      "name": "Package"
    },
    {
      "name": "PackageChain"
    },
    {
      "name": "PackageRule"
    },
    {
      "name": "Payment"
    },
    {
      "name": "PaymentAgreement"
    },
    {
      "name": "PaymentImport"
    },
    {
      "name": "PaymentStopSchedule"
    },
    {
      "name": "PermanentDiscount"
    },
    {
      "name": "PowerBI"
    },
    {
      "name": "PreliminaryDemand"
    },
    {
      "name": "PriceType"
    },
    {
      "name": "ProcessedAccountPaymentRequest"
    },
    {
      "name": "ProcessedOrderPaymentRequest"
    },
    {
      "name": "ProcessedSubscriptionPaymentRequest"
    },
    {
      "name": "Product"
    },
    {
      "name": "ProductPrice"
    },
    {
      "name": "ProductTaxGroup"
    },
    {
      "name": "ProrationPolicy",
      "description": "Manage policies that control automatic proration for subscriptions."
    },
    {
      "name": "Refund"
    },
    {
      "name": "ReportingGroup"
    },
    {
      "name": "ScheduledAccountPaymentRequest"
    },
    {
      "name": "ScheduledContactChange"
    },
    {
      "name": "ScheduledOrderPaymentRequest"
    },
    {
      "name": "ScheduledSubscriptionPaymentRequest"
    },
    {
      "name": "SearchFunctionality"
    },
    {
      "name": "Settings"
    },
    {
      "name": "Subscriber"
    },
    {
      "name": "SubscriberConfiguration"
    },
    {
      "name": "SubscriberContact"
    },
    {
      "name": "SubscriberDelivery"
    },
    {
      "name": "SubscriberExport"
    },
    {
      "name": "SubscriberNote"
    },
    {
      "name": "SubscriberSource"
    },
    {
      "name": "Subscription"
    },
    {
      "name": "SubscriptionPlan"
    },
    {
      "name": "SwedbankPay"
    },
    {
      "name": "Tag"
    },
    {
      "name": "TaxGroup"
    },
    {
      "name": "User"
    },
    {
      "name": "UserClaims"
    },
    {
      "name": "UserProducts"
    },
    {
      "name": "VaxTransfer"
    }
  ]
}