{
  "swagger": "2.0",
  "info": {
    "title": "Layup endpoints",
    "version": "1.4.16",
    "description": "Welcome to The Layup Swagger page. This page allows developers to interactively explore the API. For more detailed documentation see [The Layup documentation page](https://documentation.layup.co.za/).\n\n# Introduction\n\n## What is LayUp\n\nLayUp is a lay-by payment solution. LayUp Schedules payments and ensures that your clients pay securely, effectively and on time. Depending on your parameters LayUp schedules a payment plan for your clients. Once a payment plan has been completed we notify you. There are 3 stories that are of importance to a merchant:\n\n1. Order Creation\n2. Deposit Received (and holding Stock for your client)\n3. Order Completion.\n\nLayUp allows you to take full control over the entire payment process if you wish to do so. We also provide a convenient front-end for users to use. The front-end should significantly reduce the time to integrate and get you started using LayUp as soon as possible.\n\nOnce an order is completed a notification will be sent to the merchant so that you can provide the client with their product.\n\n## How to use LayUp\n\nAs a merchant who wants to place an order through LayUp, you want to send the relevant information to the LayUp API to create the order. The API will return an order ID. Unless your integration is using a custom user interface, you want to send the user to the LayUp customer payment widget. The URL for this widget is <u>https://shopper.layup.co.za/order/{orderId}</u> for production and <u>https://sandbox.layup.co.za/order/{orderId}</u> for sandbox.\n"
  },
  "tags": [
    {
      "name": "authService"
    },
    {
      "name": "UserService"
    },
    {
      "name": "PaymentPlanService"
    },
    {
      "name": "PaymentService"
    },
    {
      "name": "PaymentServiceV2"
    },
    {
      "name": "JournalService"
    },
    {
      "name": "JournalFeeService"
    },
    {
      "name": "OrderService"
    },
    {
      "name": "OrderAmendmentService"
    },
    {
      "name": "IntegrationService"
    },
    {
      "name": "CardService"
    },
    {
      "name": "MerchantService"
    },
    {
      "name": "SettlementService"
    },
    {
      "name": "TokenService"
    },
    {
      "name": "VerifyService"
    },
    {
      "name": "DebiCheckService"
    },
    {
      "name": "InternationalMsisdnService"
    },
    {
      "name": "PayAtService"
    },
    {
      "name": "BankService"
    },
    {
      "name": "PaymentProviderSettlementService"
    },
    {
      "name": "BankTransactionService"
    },
    {
      "name": "TerminalPaymentAppsService"
    },
    {
      "name": "InvoicesService"
    },
    {
      "name": "ConnectorService"
    },
    {
      "name": "TerminalService"
    },
    {
      "name": "DebitOrderMandateService"
    },
    {
      "name": "AbsaEftService"
    },
    {
      "name": "AbsaDebiCheckService"
    },
    {
      "name": "ShopifyService"
    }
  ],
  "host": "localhost:3000",
  "schemes": [
    "http",
    "https",
    "wss"
  ],
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/v1/absa/debicheck/output": {
      "post": {
        "operationId": "AbsaDebiCheckService_output",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelAbsaDebiCheckResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelAbsaDebiCheckOutputRequest"
            }
          }
        ],
        "tags": [
          "AbsaDebiCheckService"
        ]
      }
    },
    "/v1/absa/debicheck/reply": {
      "post": {
        "operationId": "AbsaDebiCheckService_reply",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelAbsaDebiCheckResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelAbsaDebiCheckReplyRequest"
            }
          }
        ],
        "tags": [
          "AbsaDebiCheckService"
        ]
      }
    },
    "/v1/absa/eft/output": {
      "post": {
        "operationId": "AbsaEftService_output",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelAbsaEftResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelAbsaEftOutputRequest"
            }
          }
        ],
        "tags": [
          "AbsaEftService"
        ]
      }
    },
    "/v1/absa/eft/reply": {
      "post": {
        "operationId": "AbsaEftService_reply",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelAbsaEftResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelAbsaEftReplyRequest"
            }
          }
        ],
        "tags": [
          "AbsaEftService"
        ]
      }
    },
    "/v1/auth/apikey": {
      "get": {
        "summary": "Warning: Calling this endpoint will replace any existing apikeys on your account.",
        "operationId": "authService_GenerateApiKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelApiKeyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/auth/login": {
      "post": {
        "operationId": "authService_Login",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelLoginRequest"
            }
          }
        ],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/auth/register": {
      "post": {
        "operationId": "authService_Register",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelUserRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "avs",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "isRealtimeVerification",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/auth/terminal-key": {
      "get": {
        "operationId": "authService_GenerateTerminalApiKey",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalApiKeyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/bank-transactions": {
      "post": {
        "operationId": "BankTransactionService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankTransactionResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelBankTransactionCreateRequest"
            }
          }
        ],
        "tags": [
          "BankTransactionService"
        ]
      }
    },
    "/v1/bank-transactions/link-batch": {
      "put": {
        "operationId": "BankTransactionService_linkBatch",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankTransactionResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "bankTransactionBatchId",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "BankTransactionService"
        ]
      }
    },
    "/v1/bank-transactions/{id}/payment": {
      "post": {
        "operationId": "BankTransactionService_createPayment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankTransactionResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelBankTransactionPaymentRequest"
            }
          }
        ],
        "tags": [
          "BankTransactionService"
        ]
      }
    },
    "/v1/banks": {
      "get": {
        "operationId": "BankService_getMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankGetManyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "tags": [
          "BankService"
        ]
      },
      "post": {
        "operationId": "BankService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelBankCreateRequest"
            }
          }
        ],
        "tags": [
          "BankService"
        ]
      }
    },
    "/v1/banks/{_id}": {
      "delete": {
        "operationId": "BankService_delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "BankService"
        ]
      },
      "put": {
        "operationId": "BankService_update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelBankUpdateRequest"
            }
          }
        ],
        "tags": [
          "BankService"
        ]
      }
    },
    "/v1/cards": {
      "get": {
        "operationId": "CardService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelCardResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          }
        ],
        "tags": [
          "CardService"
        ]
      },
      "post": {
        "operationId": "CardService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelCardResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelCardRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "CardService"
        ]
      }
    },
    "/v1/cards/{_id}": {
      "get": {
        "operationId": "CardService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelCardResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "CardService"
        ]
      },
      "delete": {
        "operationId": "CardService_Remove",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "CardService"
        ]
      },
      "put": {
        "operationId": "CardService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelCardResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelCardRequest"
            }
          }
        ],
        "tags": [
          "CardService"
        ]
      }
    },
    "/v1/connectors/{paymentProviderPaymentId}": {
      "put": {
        "operationId": "ConnectorService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelConnectorResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "paymentProviderPaymentId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelConnectorRequest"
            }
          }
        ],
        "tags": [
          "ConnectorService"
        ]
      }
    },
    "/v1/debicheck": {
      "post": {
        "operationId": "DebiCheckService_CreateLegacy",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckMandateResponseLegacy"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelDebiCheckRequestLegacy"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      }
    },
    "/v1/debicheck/collection": {
      "get": {
        "operationId": "DebiCheckService_GetManyCollection",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckCollectionResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "due",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      },
      "post": {
        "operationId": "DebiCheckService_CreateCollection",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckCollection"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelDebiCheckCollectionRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      }
    },
    "/v1/debicheck/list/{_id}": {
      "get": {
        "operationId": "DebiCheckService_GetMandateList",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckMandateListResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      }
    },
    "/v1/debicheck/{_id}": {
      "get": {
        "operationId": "DebiCheckService_GetMandate",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckMandateResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      }
    },
    "/v1/debit-order-mandates": {
      "post": {
        "operationId": "DebitOrderMandateService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebitOrderMandateResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelDebitOrderMandateCreateRequest"
            }
          }
        ],
        "tags": [
          "DebitOrderMandateService"
        ]
      }
    },
    "/v1/generate-refund": {
      "get": {
        "operationId": "PaymentService_refund",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body.amount",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "body.refundReference",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.paymentId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.excludeFees",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "body.refundMethod",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.autoRefund",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/integrations/cue/user/{cellNumber}/orders": {
      "get": {
        "operationId": "IntegrationService_GetCueOrders",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelCueOrderResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "cellNumber",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "IntegrationService"
        ]
      }
    },
    "/v1/integrations/shopify/calculate-shipping": {
      "post": {
        "operationId": "ShopifyService_calculateShipping",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyCalculateShippingResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "customerData.firstName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.lastName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.email",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.phone",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.address",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.address2",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.city",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.province",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.postalCode",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "shopDomain",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/integrations/shopify/discounts": {
      "get": {
        "operationId": "ShopifyService_processDiscount",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyDiscountResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "discountCode",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "shopDomain",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/integrations/shopify/link-order": {
      "post": {
        "operationId": "ShopifyService_linkOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "shopDomain",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.status",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.createdAt",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.name",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.customer.name",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.customer.email",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.customer.phone",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.customer.displayName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.totalPriceSet",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.taxesIncluded",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "draftOrder.shippingLine.discountedPriceSet",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "draftOrder.totalTaxSet",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/integrations/shopify/orders": {
      "post": {
        "operationId": "ShopifyService_processOrder",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "shopDomain",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "amount",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "shippingData.amount",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "shippingData.handle",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "shippingData.title",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.discountType",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.discountValue",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.discountAllocation",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.discountSelection",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.discountTitle",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "discount.entitledProductIds",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "discount.entitledVariantIds",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "locationData",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.firstName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.lastName",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.email",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.phone",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.address",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.address2",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.city",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.province",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "customerData.postalCode",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/integrations/shopify/shop-settings/{shopDomain}": {
      "post": {
        "operationId": "ShopifyService_getShopSettings",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyGetShopSettingsResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "shopDomain",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/integrations/shopify/shopify-order-notes": {
      "post": {
        "operationId": "ShopifyService_getOrderNotes",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelShopifyOrderNotesResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "shopDomain",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "ShopifyService"
        ]
      }
    },
    "/v1/international-msisdns": {
      "get": {
        "operationId": "InternationalMsisdnService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInternationalMsisdnResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "countryCode",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "msisdn",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "InternationalMsisdnService"
        ]
      },
      "post": {
        "operationId": "InternationalMsisdnService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInternationalMsisdnResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelInternationalMsisdnRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "InternationalMsisdnService"
        ]
      }
    },
    "/v1/international-msisdns/{_id}": {
      "get": {
        "operationId": "InternationalMsisdnService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInternationalMsisdnResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "InternationalMsisdnService"
        ]
      },
      "delete": {
        "operationId": "InternationalMsisdnService_Del",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInternationalMsisdnResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "InternationalMsisdnService"
        ]
      }
    },
    "/v1/invoice/{id}": {
      "put": {
        "operationId": "InvoicesService_updatePdf",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoiceResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelInvoiceUpdatePdfRequest"
            }
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/invoices": {
      "get": {
        "operationId": "InvoicesService_getMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoiceGetManyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "reference",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      },
      "post": {
        "operationId": "InvoicesService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoicesResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelDateTimeRange"
            }
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      },
      "put": {
        "operationId": "InvoicesService_update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoiceResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelInvoiceUpdateRequest"
            }
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/invoices/:id/pdf": {
      "get": {
        "operationId": "InvoicesService_getPdf",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoicePdfResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/invoices/fees": {
      "post": {
        "operationId": "InvoicesService_createByFees",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoicesResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelInvoiceFeesCreateRequest"
            }
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/invoices/{id}": {
      "get": {
        "operationId": "InvoicesService_getInvoiceById",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelInvoiceReport"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/invoices/{id}/report": {
      "get": {
        "operationId": "InvoicesService_getInvoiceReportById",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelGenerateReportResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "InvoicesService"
        ]
      }
    },
    "/v1/journal-fees": {
      "post": {
        "operationId": "JournalFeeService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelJournalFeeResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelJournalFeeResponse"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "JournalFeeService"
        ]
      }
    },
    "/v1/journals": {
      "post": {
        "operationId": "JournalService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelJournalResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelJournalRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "JournalService"
        ]
      }
    },
    "/v1/manual-refund": {
      "get": {
        "operationId": "PaymentService_manualRefund",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body.amount",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "body.refundReference",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.paymentId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.excludeFees",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "body.refundMethod",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.autoRefund",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/merchants": {
      "post": {
        "operationId": "MerchantService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelMerchantRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "avs",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "MerchantService"
        ]
      }
    },
    "/v1/merchants-to-settle": {
      "get": {
        "operationId": "MerchantService_getMerchantsToSettle",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantToSettleResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "tags": [
          "MerchantService"
        ]
      }
    },
    "/v1/merchants/shop-directory": {
      "get": {
        "operationId": "MerchantService_getShops",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantResponseShops"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "featured",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "MerchantService"
        ]
      }
    },
    "/v1/merchants/{_id}": {
      "get": {
        "operationId": "MerchantService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MerchantService"
        ]
      },
      "delete": {
        "operationId": "MerchantService_Del",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "MerchantService"
        ]
      },
      "put": {
        "operationId": "MerchantService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelMerchantRequest"
            }
          },
          {
            "name": "avs",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "MerchantService"
        ]
      }
    },
    "/v1/merchants/{merchantId}/debit-order-mandates": {
      "get": {
        "operationId": "DebitOrderMandateService_get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebitOrderMandateResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "DebitOrderMandateService"
        ]
      }
    },
    "/v1/offline-payments": {
      "post": {
        "operationId": "PaymentService_CreateOffline",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelOfflinePaymentRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/offline-payments/{_id}": {
      "delete": {
        "operationId": "PaymentService_DeleteOffline",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/order-amendments": {
      "get": {
        "operationId": "OrderAmendmentService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderAmendmentResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "OrderAmendmentService"
        ]
      },
      "post": {
        "operationId": "OrderAmendmentService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderAmendmentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelOrderAmendmentRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "OrderAmendmentService"
        ]
      }
    },
    "/v1/order-amendments/{_id}": {
      "get": {
        "operationId": "OrderAmendmentService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderAmendmentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderAmendmentService"
        ]
      }
    },
    "/v1/orders": {
      "get": {
        "operationId": "OrderService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "populate",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "type": "string",
            "schema": {
              "type": "string",
              "enum": [
                "PARTIAL",
                "EXPIRED",
                "PLACED",
                "COMPLETED",
                "SUSPENDED",
                "CANCELLING",
                "CANCELLED"
              ]
            },
            "description": "See the Enumerated Values below"
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date",
            "default": "2000-03-20"
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date",
            "default": "2030-03-20"
          },
          {
            "name": "select",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "populateObject.path",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "populateObject.select",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "populateObject.populate.path",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "populateObject.populate.select",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "reference",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "stateUpdatedAt",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "cloneOriginalId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "groupPaymentPlan",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "post": {
        "operationId": "OrderService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelOrderRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "clone",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/orders-send-request": {
      "post": {
        "operationId": "OrderService_SendOrderRequest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderSendRequestResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelOrderSendRequest"
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/orders/attach/{_id}": {
      "get": {
        "operationId": "OrderService_Attach",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/orders/reference/{reference}/cellNumber/{cellNumber}": {
      "get": {
        "operationId": "OrderService_GetByReferenceAndCellNumber",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "reference",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "cellNumber",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/orders/{_id}": {
      "get": {
        "operationId": "OrderService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "populate",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "delete": {
        "operationId": "OrderService_Del",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      },
      "put": {
        "operationId": "OrderService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelOrderUpdateRequest"
            }
          },
          {
            "name": "collectMissed",
            "description": "now, next or ISO 8601 Date",
            "in": "query",
            "required": false,
            "type": "string",
            "default": "2040-11-28"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/orders/{_id}/cancellation-terms": {
      "get": {
        "operationId": "OrderService_GetCancellationTerms",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelOrderCancellationTermsResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/payAt/adviseTransaction": {
      "post": {
        "operationId": "PayAtService_adviseTransaction",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPayAtTransactionAdviceResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPayAtTransactionAdviceRequest"
            }
          }
        ],
        "tags": [
          "PayAtService"
        ]
      }
    },
    "/v1/payAt/authorize": {
      "post": {
        "operationId": "PayAtService_authorize",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPayAtAuthorizationResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPayAtAuthorizationRequest"
            }
          }
        ],
        "tags": [
          "PayAtService"
        ]
      }
    },
    "/v1/payAt/echoTest": {
      "post": {
        "operationId": "PayAtService_echoTest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPayAtEchoTestResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPayAtEchoTestRequest"
            }
          }
        ],
        "tags": [
          "PayAtService"
        ]
      }
    },
    "/v1/payAt/enquire": {
      "post": {
        "operationId": "PayAtService_enquiry",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPayAtEnquiryResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPayAtEnquiryRequest"
            }
          }
        ],
        "tags": [
          "PayAtService"
        ]
      }
    },
    "/v1/payAt/reverseAuthorization": {
      "post": {
        "operationId": "PayAtService_reverseAuthorization",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPayAtReverseAuthorizationResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPayAtReverseAuthorizationRequest"
            }
          }
        ],
        "tags": [
          "PayAtService"
        ]
      }
    },
    "/v1/payment-plan": {
      "post": {
        "operationId": "PaymentPlanService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan-send-notification": {
      "post": {
        "operationId": "PaymentPlanService_sendPaymentPlanNotification",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanSendNotificationRequest"
            }
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan-split": {
      "post": {
        "operationId": "PaymentPlanService_CreateSplitPayment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanSplitBody"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan/preview": {
      "post": {
        "operationId": "PaymentPlanService_CreatePreview",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanPreviewResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanPreviewRequest"
            }
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan/preview/{_id}": {
      "get": {
        "operationId": "PaymentPlanService_GetPreview",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanPreviewResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "frequency",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "paymentPlanId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan/{_id}": {
      "get": {
        "operationId": "PaymentPlanService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "populate",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      },
      "delete": {
        "operationId": "PaymentPlanService_Del",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanDelResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      },
      "put": {
        "operationId": "PaymentPlanService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanRequest"
            }
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/payment-plan/{token}": {
      "get": {
        "operationId": "PaymentPlanService_getByMsisdnAndToken",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentPlanResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "msisdn",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "populate",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          }
        ],
        "tags": [
          "PaymentPlanService"
        ]
      }
    },
    "/v1/paymentProviderSettlements": {
      "post": {
        "operationId": "PaymentProviderSettlementService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentProviderSettlementsResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentProviderSettlementsRequest"
            }
          }
        ],
        "tags": [
          "PaymentProviderSettlementService"
        ]
      }
    },
    "/v1/paymentProviderSettlements/link-batch": {
      "put": {
        "operationId": "PaymentProviderSettlementService_linkBatch",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "required": true,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "bankTransactionBatchId",
            "in": "query",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentProviderSettlementService"
        ]
      }
    },
    "/v1/paymentProviderSettlements/{id}/linkPayment/{paymentId}": {
      "put": {
        "operationId": "PaymentProviderSettlementService_linkPayment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentProviderSettlementResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentProviderSettlementService"
        ]
      }
    },
    "/v1/payments": {
      "get": {
        "operationId": "PaymentService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "paid",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "paymentPlanId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date",
            "default": "2000-03-20"
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "type": "string",
            "format": "date",
            "default": "2030-03-20"
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fromDatePayments",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDatePayments",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "settled",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "failed",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "destinationId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "destinationType",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      },
      "delete": {
        "operationId": "PaymentService_Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      },
      "post": {
        "operationId": "PaymentService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentRedirectResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "secret",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/payments/{_id}": {
      "get": {
        "operationId": "PaymentService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "verify",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "force",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "msisdn",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "isEmbeddedCheckout",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "registrationId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      },
      "put": {
        "operationId": "PaymentService_UpdateById",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentRequest"
            }
          },
          {
            "name": "secret",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/realtime-refund": {
      "get": {
        "operationId": "PaymentService_realtimeRefund",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body.amount",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "body.refundReference",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.paymentId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.excludeFees",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "body.refundMethod",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "body.autoRefund",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/refund-payments/{_id}": {
      "get": {
        "operationId": "PaymentService_RefundPaymentMailer",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/release-suspense": {
      "put": {
        "operationId": "BankTransactionService_update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelBankTransactionResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelBankTransactionUpdate"
            }
          }
        ],
        "tags": [
          "BankTransactionService"
        ]
      }
    },
    "/v1/request-password-reset": {
      "post": {
        "operationId": "authService_ForgotPassword",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelForgotPasswordResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelForgotPasswordRequest"
            }
          }
        ],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/send-billing-settlements-change-request": {
      "post": {
        "operationId": "authService_MerchantBillingChangesRequest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelMerchantBillingSettlementResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelMerchantBillingSettlementRequest"
            }
          }
        ],
        "tags": [
          "authService"
        ]
      }
    },
    "/v1/statement": {
      "post": {
        "operationId": "OrderService_StatementRequest",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelStatementRequestResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelStatementRequest"
            }
          }
        ],
        "tags": [
          "OrderService"
        ]
      }
    },
    "/v1/terminalPaymentApps": {
      "get": {
        "operationId": "TerminalPaymentAppsService_getMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalPaymentAppsGetManyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "tags": [
          "TerminalPaymentAppsService"
        ]
      }
    },
    "/v1/terminals": {
      "get": {
        "operationId": "TerminalService_get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalsResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "tags": [
          "TerminalService"
        ]
      },
      "post": {
        "operationId": "TerminalService_create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelTerminalCreateRequest"
            }
          }
        ],
        "tags": [
          "TerminalService"
        ]
      }
    },
    "/v1/terminals/{id}": {
      "put": {
        "operationId": "TerminalService_update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelTerminalServiceupdateBody"
            }
          }
        ],
        "tags": [
          "TerminalService"
        ]
      }
    },
    "/v1/terminals/{serial}": {
      "get": {
        "operationId": "TerminalService_getBySerial",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelTerminalResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "serial",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "TerminalService"
        ]
      }
    },
    "/v1/tokens": {
      "post": {
        "operationId": "TokenService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "type": "object",
              "properties": {}
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelTokenRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "TokenService"
        ]
      }
    },
    "/v1/transfer-payments": {
      "post": {
        "operationId": "PaymentService_TransferPayment",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelTransferPaymentRequest"
            }
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/undo-transfer-payments": {
      "post": {
        "operationId": "PaymentService_UndoTransfer",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelTransferPaymentRequest"
            }
          }
        ],
        "tags": [
          "PaymentService"
        ]
      }
    },
    "/v1/users": {
      "get": {
        "operationId": "UserService_GetMany",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponseMany"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "post": {
        "summary": "Description",
        "operationId": "UserService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelUserRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "avs",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "isRealtimeVerification",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/users/{_id}": {
      "get": {
        "operationId": "UserService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "delete": {
        "summary": "Description",
        "operationId": "UserService_Del",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "UserService"
        ]
      },
      "put": {
        "operationId": "UserService_Update",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelUserResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "_id",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelUserRequest"
            }
          },
          {
            "name": "avs",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "isRealtimeVerification",
            "in": "query",
            "required": false,
            "type": "boolean"
          }
        ],
        "tags": [
          "UserService"
        ]
      }
    },
    "/v1/verify": {
      "get": {
        "operationId": "VerifyService_Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelVerifyResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "msisdn",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "VerifyService"
        ]
      }
    },
    "/v2/debi-check": {
      "post": {
        "operationId": "DebiCheckService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelDebiCheckMandateResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelDebiCheckRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "DebiCheckService"
        ]
      }
    },
    "/v2/payments": {
      "post": {
        "operationId": "PaymentServiceV2_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentRedirectResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelPaymentRequestV2"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentServiceV2"
        ]
      }
    },
    "/v2/payments-report": {
      "get": {
        "operationId": "PaymentServiceV2_GetReport",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelPaymentReportResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "paid",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "orderId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "paymentPlanId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "fromDatePayments",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDatePayments",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "settled",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "array",
            "items": {
              "type": "string"
            },
            "collectionFormat": "multi"
          },
          {
            "name": "failed",
            "in": "query",
            "required": false,
            "type": "boolean"
          },
          {
            "name": "provider",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "destinationId",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "destinationType",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "PaymentServiceV2"
        ]
      }
    },
    "/v2/settlements": {
      "post": {
        "operationId": "SettlementService_Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelSettlementResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "body",
            "in": "body",
            "required": true,
            "schema": {
              "$ref": "#/definitions/modelSettlementRequest"
            }
          },
          {
            "name": "_id",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "taskToken",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "SettlementService"
        ]
      }
    },
    "/v2/settlements-report": {
      "get": {
        "operationId": "SettlementService_GetReport",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelSettlementReportResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "skip",
            "in": "query",
            "required": false,
            "type": "integer",
            "format": "int32"
          },
          {
            "name": "fromDate",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "toDate",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "type": "string"
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "type": "string"
          }
        ],
        "tags": [
          "SettlementService"
        ]
      }
    },
    "/v3/settlement-reports/{merchantId}/{settlementReferenceWithExtension}": {
      "get": {
        "summary": "Redirect to pre-signed URL",
        "operationId": "SettlementService_DownloadReport",
        "responses": {
          "200": {
            "description": "A successful response.",
            "schema": {
              "$ref": "#/definitions/modelSettlementDownloadResponse"
            }
          },
          "204": {
            "description": "Successfully processed the request, no content."
          },
          "302": {
            "description": "Redirect to the pre-signed S3 URL",
            "schema": {},
            "headers": {
              "Location": {
                "description": "The pre-signed S3 URL",
                "type": "string",
                "format": "uri"
              }
            }
          },
          "403": {
            "description": "Returned when the user does not have permission to access the resource."
          },
          "404": {
            "description": "Returned when the resource does not exist."
          }
        },
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "type": "string"
          },
          {
            "name": "settlementReferenceWithExtension",
            "description": "reference.zip",
            "in": "path",
            "required": true,
            "type": "string"
          }
        ],
        "tags": [
          "SettlementService"
        ]
      }
    }
  },
  "definitions": {
    "modelAbsaDebiCheckOutputRequest": {
      "type": "object",
      "properties": {
        "transmissionDate": {
          "type": "string"
        },
        "fileStoragePath": {
          "type": "string"
        },
        "transactions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelAbsaDebiCheckOutputTransaction"
          }
        }
      }
    },
    "modelAbsaDebiCheckOutputTransaction": {
      "type": "object",
      "properties": {
        "paymentId": {
          "type": "string"
        },
        "accepted": {
          "type": "boolean"
        },
        "contractReference": {
          "type": "string"
        },
        "mandateReference": {
          "type": "string"
        },
        "sequenceType": {
          "type": "string"
        },
        "amountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "effectiveDate": {
          "type": "string"
        },
        "originalEndToEndTransactionIdentifier": {
          "type": "string"
        },
        "error": {
          "type": "string"
        }
      }
    },
    "modelAbsaDebiCheckReplyRequest": {
      "type": "object",
      "properties": {
        "transmissionNumber": {
          "type": "string"
        },
        "transmissionDate": {
          "type": "string"
        },
        "transmissionStatus": {
          "type": "string"
        },
        "fileStoragePath": {
          "type": "string"
        },
        "rejectedReasons": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelRejectedReasons"
          }
        }
      }
    },
    "modelAbsaDebiCheckResponse": {
      "type": "object"
    },
    "modelAbsaEftOutputRequest": {
      "type": "object",
      "properties": {
        "transmissionNumber": {
          "type": "integer",
          "format": "int32"
        },
        "fileStoragePath": {
          "type": "string"
        },
        "rejectedTransactions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelRejectedTransaction"
          }
        }
      }
    },
    "modelAbsaEftReplyRequest": {
      "type": "object",
      "properties": {
        "ldCode": {
          "type": "string"
        },
        "transmissionNumber": {
          "type": "integer",
          "format": "int32"
        },
        "transmissionStatus": {
          "type": "string"
        },
        "fileStoragePath": {
          "type": "string"
        }
      }
    },
    "modelAbsaEftResponse": {
      "type": "object"
    },
    "modelApiKeyResponse": {
      "type": "object",
      "properties": {
        "apikey": {
          "type": "string"
        }
      }
    },
    "modelBankCreateRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "avsInstitutionCode": {
          "type": "string"
        }
      }
    },
    "modelBankDetails": {
      "type": "object",
      "properties": {
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "bankName": {
          "type": "string"
        },
        "verified": {
          "type": "boolean"
        }
      }
    },
    "modelBankGetManyResponse": {
      "type": "object",
      "properties": {
        "banks": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelBankResponse"
          }
        }
      }
    },
    "modelBankInfo": {
      "type": "object",
      "properties": {
        "bankName": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "account": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "accountType": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "branchCode": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "idNumber": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "verified": {
          "type": "boolean"
        },
        "clientName": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "cellNumber": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "initials": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "email": {
          "$ref": "#/definitions/modelBankValidation"
        },
        "validationResponseErrors": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelBankResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "avsInstitutionCode": {
          "type": "string"
        }
      }
    },
    "modelBankTransactionCreate": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "amountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "balanceInCents": {
          "type": "integer",
          "format": "int32"
        },
        "bank": {
          "type": "string"
        },
        "fileStorageReference": {
          "type": "string"
        }
      }
    },
    "modelBankTransactionCreateRequest": {
      "type": "object",
      "properties": {
        "bankTransactions": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelBankTransactionCreate"
          }
        }
      }
    },
    "modelBankTransactionPaymentRequest": {
      "type": "object",
      "properties": {
        "destinationId": {
          "type": "string"
        },
        "destinationType": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelBankTransactionResponse": {
      "type": "object"
    },
    "modelBankTransactionUpdate": {
      "type": "object",
      "properties": {
        "bankTransactionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelBankUpdateRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "shortName": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "avsInstitutionCode": {
          "type": "string"
        }
      }
    },
    "modelBankValidation": {
      "type": "object",
      "properties": {
        "verified": {
          "type": "boolean"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelBillingAddress": {
      "type": "object",
      "properties": {
        "country": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "streetAddress": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        }
      }
    },
    "modelCancellationDefinition": {
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/definitions/modelCancellationType"
        },
        "policy": {
          "$ref": "#/definitions/modelCancellationPolicy"
        },
        "start": {
          "type": "integer",
          "format": "int32"
        },
        "end": {
          "type": "integer",
          "format": "int32"
        },
        "gracePeriod": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelCancellationPolicy": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "enum": [
            "Deposit",
            "Percentage",
            "FlatFee",
            "Combination"
          ]
        },
        "definition": {
          "$ref": "#/definitions/modelCancellationPolicyDefinition"
        }
      }
    },
    "modelCancellationPolicyDefinition": {
      "type": "object",
      "properties": {
        "deposit": {
          "type": "boolean"
        },
        "percentage": {
          "type": "integer",
          "format": "int32"
        },
        "flatFee": {
          "type": "integer",
          "format": "int32"
        },
        "percentageShouldUseTotalPaid": {
          "type": "boolean"
        }
      }
    },
    "modelCancellationTermRequest": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "definition": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelCancellationDefinition"
          }
        }
      }
    },
    "modelCancellationType": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "definition": {
          "$ref": "#/definitions/modelCancellationTypeDefinition"
        },
        "finalPaymentMissed": {
          "type": "boolean"
        }
      }
    },
    "modelCancellationTypeDefinition": {
      "type": "object",
      "properties": {
        "missed": {
          "type": "integer",
          "format": "int32"
        },
        "percentage": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelCardRequest": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "defaultCard": {
          "type": "boolean"
        },
        "redirectUrl": {
          "type": "string"
        }
      },
      "title": "card"
    },
    "modelCardResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "nameOnCard": {
          "type": "string"
        },
        "cardType": {
          "type": "string"
        },
        "cardDigits": {
          "type": "string"
        },
        "defaultCard": {
          "type": "boolean"
        },
        "expiryMonth": {
          "type": "string"
        },
        "expiryYear": {
          "type": "string"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "checkoutId": {
          "type": "string"
        },
        "resourcePath": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        }
      }
    },
    "modelCardResponseMany": {
      "type": "object",
      "properties": {
        "clientCards": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelCardResponse"
          }
        }
      }
    },
    "modelCommunication": {
      "type": "object",
      "properties": {
        "channels": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "messages": {
          "$ref": "#/definitions/modelCommunicationMessage"
        }
      }
    },
    "modelCommunicationMessage": {
      "type": "object",
      "properties": {
        "orderExpiryReminder": {
          "$ref": "#/definitions/modelOrderExpiryReminder"
        },
        "orderActivated": {
          "$ref": "#/definitions/modelMessageNotification"
        },
        "cancellation": {
          "$ref": "#/definitions/modelMessageNotification"
        },
        "refund": {
          "$ref": "#/definitions/modelMessageNotification"
        }
      }
    },
    "modelConnector": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        }
      }
    },
    "modelConnectorData": {
      "type": "object",
      "properties": {
        "paymentProvider": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        }
      },
      "description": "Connector data bypasses protobuf conversion to allow any fields."
    },
    "modelConnectorDataV2": {
      "type": "object",
      "properties": {
        "bankTransactionId": {
          "type": "string"
        }
      }
    },
    "modelConnectorRequest": {
      "type": "object",
      "properties": {
        "paymentProviderPaymentId": {
          "type": "string"
        },
        "connector": {
          "$ref": "#/definitions/modelConnector"
        }
      }
    },
    "modelConnectorResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paymentProviderPaymentId": {
          "type": "string"
        },
        "paymentReference": {
          "type": "string"
        }
      }
    },
    "modelCueOrder": {
      "type": "object",
      "properties": {
        "reference": {
          "type": "string"
        },
        "endDateMax": {
          "type": "string"
        },
        "dueDate": {
          "type": "string"
        },
        "balance": {
          "type": "integer",
          "format": "int32"
        },
        "cancellationFee": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelCueOrderResponseMany": {
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelCueOrder"
          }
        }
      }
    },
    "modelCustomerData": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        }
      }
    },
    "modelCustomize": {
      "type": "object",
      "properties": {
        "logo": {
          "$ref": "#/definitions/modelLogo"
        },
        "imageUrl": {
          "$ref": "#/definitions/modelImageUrl"
        },
        "paymentWidget": {
          "$ref": "#/definitions/modelPaymentWidgetLogo"
        }
      }
    },
    "modelDateTimeRange": {
      "type": "object",
      "properties": {
        "fromDateTime": {
          "type": "string"
        },
        "toDateTime": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckAccountTypeEnum": {
      "type": "integer",
      "format": "int32",
      "example": "Current",
      "enum": [
        0,
        1,
        2
      ],
      "default": 0,
      "x-enum-varnames": [
        "Current",
        "Savings",
        "Transmission"
      ]
    },
    "modelDebiCheckCollection": {
      "type": "object",
      "properties": {
        "raw": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckCollectionRequest": {
      "type": "object",
      "properties": {
        "due": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckCollectionResponse": {
      "type": "object",
      "properties": {
        "collections": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelDebiCheckCollection"
          }
        }
      }
    },
    "modelDebiCheckContact": {
      "type": "object",
      "properties": {
        "medium": {
          "$ref": "#/definitions/modelDebiCheckMediumEnum"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckContactLegacy": {
      "type": "object",
      "properties": {
        "medium": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckIdentificationTypeEnum": {
      "type": "integer",
      "format": "int32",
      "example": "IdentityDocument",
      "enum": [
        0,
        1,
        2
      ],
      "default": 0,
      "x-enum-varnames": [
        "IdentityDocument",
        "Passport",
        "TemporaryResidence"
      ]
    },
    "modelDebiCheckMandateContact": {
      "type": "object",
      "properties": {
        "medium": {
          "$ref": "#/definitions/modelDebiCheckMediumEnum"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckMandateContactLegacy": {
      "type": "object",
      "properties": {
        "medium": {
          "type": "integer",
          "format": "int32"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelDebiCheckMandateCustomer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "identification": {
          "type": "string"
        },
        "identificationType": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "contact": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelDebiCheckMandateContact"
          }
        },
        "simulated": {
          "type": "boolean"
        }
      }
    },
    "modelDebiCheckMandateCustomerLegacy": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "identification": {
          "type": "string"
        },
        "identificationType": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "contact": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelDebiCheckMandateContactLegacy"
          }
        },
        "simulated": {
          "type": "boolean"
        }
      }
    },
    "modelDebiCheckMandateListResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "debicheckFailedReasons": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelDebiCheckMandateResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "customer": {
          "$ref": "#/definitions/modelDebiCheckMandateCustomer"
        },
        "createdAt": {
          "type": "string"
        },
        "simulation": {
          "type": "boolean"
        }
      }
    },
    "modelDebiCheckMandateResponseLegacy": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "customer": {
          "$ref": "#/definitions/modelDebiCheckMandateCustomerLegacy"
        },
        "createdAt": {
          "type": "string"
        },
        "simulation": {
          "type": "boolean"
        }
      }
    },
    "modelDebiCheckMediumEnum": {
      "type": "integer",
      "format": "int32",
      "example": "PhoneNumber",
      "enum": [
        0,
        1
      ],
      "default": 0,
      "x-enum-descriptions": [
        "Phone Number (in international format, e.g., +1 415 555 2671)",
        "Email address"
      ],
      "x-enum-varnames": [
        "PhoneNumber",
        "EmailAddress"
      ]
    },
    "modelDebiCheckRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "Name and Surname"
        },
        "accountType": {
          "$ref": "#/definitions/modelDebiCheckAccountTypeEnum"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string",
          "title": "6-digit branch code"
        },
        "contact": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelDebiCheckContact"
          }
        },
        "identificationType": {
          "$ref": "#/definitions/modelDebiCheckIdentificationTypeEnum"
        },
        "identification": {
          "type": "string"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "simulation": {
          "type": "boolean"
        }
      }
    },
    "modelDebiCheckRequestLegacy": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "title": "Name and Surname"
        },
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string",
          "title": "6-digit branch code"
        },
        "contact": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelDebiCheckContactLegacy"
          }
        },
        "identificationType": {
          "type": "string"
        },
        "identification": {
          "type": "string"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "simulation": {
          "type": "boolean"
        }
      }
    },
    "modelDebitOrderMandateCreateRequest": {
      "type": "object",
      "properties": {
        "merchantId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "holderName": {
          "type": "string"
        },
        "holderSurname": {
          "type": "string"
        },
        "contact": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "identificationType": {
          "type": "string"
        },
        "identificationNumber": {
          "type": "string"
        }
      }
    },
    "modelDebitOrderMandateResponse": {
      "type": "object",
      "properties": {
        "mandateId": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "holderName": {
          "type": "string"
        },
        "holderSurname": {
          "type": "string"
        },
        "contact": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "accountNumber": {
          "type": "string"
        },
        "branchCode": {
          "type": "string"
        },
        "identificationType": {
          "type": "string"
        },
        "identificationNumber": {
          "type": "string"
        }
      }
    },
    "modelDefaultDepositType": {
      "type": "object",
      "properties": {
        "depositType": {
          "type": "string"
        },
        "enabled": {
          "type": "boolean"
        },
        "percentage": {
          "type": "integer",
          "format": "int32"
        },
        "flat": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelFeature": {
      "type": "object",
      "properties": {
        "enableCustomWidgetLogo": {
          "type": "boolean"
        },
        "enableCustomEmailLogo": {
          "type": "boolean"
        },
        "enableDefaultPaymentPlanImage": {
          "type": "boolean"
        },
        "enableDebiCheck": {
          "type": "boolean"
        },
        "enableCreditCard": {
          "type": "boolean"
        },
        "enableInstantEFT": {
          "type": "boolean"
        },
        "enableAutoCancellation": {
          "type": "boolean"
        },
        "enableManualCancellation": {
          "type": "boolean"
        },
        "enableLayupFee": {
          "type": "boolean"
        },
        "enableAmendmentApi": {
          "type": "boolean"
        },
        "enablePayAt": {
          "type": "boolean"
        },
        "enableCapitecPay": {
          "type": "boolean"
        },
        "enableDashpay": {
          "type": "boolean"
        },
        "enableTerminalCard": {
          "type": "boolean"
        },
        "enableOfflinePayment": {
          "type": "boolean"
        },
        "enableEmbeddedCheckout": {
          "type": "boolean"
        }
      }
    },
    "modelFee": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "productName": {
          "type": "string"
        },
        "amountExcludingVAT": {
          "type": "number",
          "format": "double"
        },
        "amountVAT": {
          "type": "number",
          "format": "double"
        },
        "amountTotal": {
          "type": "number",
          "format": "double"
        },
        "merchantId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "settlementId": {
          "type": "string"
        },
        "paymentId": {
          "type": "string"
        }
      }
    },
    "modelFeePerProduct": {
      "type": "object",
      "properties": {
        "quantity": {
          "type": "number",
          "format": "double"
        },
        "amountTotal": {
          "type": "number",
          "format": "double"
        },
        "amountExcludingVAT": {
          "type": "number",
          "format": "double"
        },
        "amountVAT": {
          "type": "number",
          "format": "double"
        },
        "product": {
          "$ref": "#/definitions/modelProduct"
        }
      }
    },
    "modelFeesPerProduct": {
      "type": "object",
      "properties": {
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "amountTotal": {
          "type": "number",
          "format": "double"
        },
        "amountExcludingVAT": {
          "type": "number",
          "format": "double"
        },
        "amountVAT": {
          "type": "number",
          "format": "double"
        },
        "product": {
          "$ref": "#/definitions/modelProduct"
        }
      }
    },
    "modelForgotPasswordRequest": {
      "type": "object",
      "properties": {
        "value": {
          "type": "string"
        },
        "channel": {
          "type": "string"
        },
        "redirectTo": {
          "type": "string"
        },
        "isRealtimeVerification": {
          "type": "boolean"
        }
      }
    },
    "modelForgotPasswordResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "modelGenerateReportResponse": {
      "type": "object",
      "properties": {
        "report": {
          "$ref": "#/definitions/modelInvoiceReport"
        }
      }
    },
    "modelGroupPayment": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "cloneLimit": {
          "type": "integer",
          "format": "int32"
        },
        "expiry": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelImageUrl": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelInternationalMsisdnRequest": {
      "type": "object",
      "properties": {
        "msisdn": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        }
      }
    },
    "modelInternationalMsisdnResponse": {
      "type": "object",
      "properties": {
        "msisdn": {
          "type": "string"
        },
        "countryCode": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      }
    },
    "modelInternationalMsisdnResponseMany": {
      "type": "object",
      "properties": {
        "internationalMsisdns": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelInternationalMsisdnResponse"
          }
        }
      }
    },
    "modelInvoice": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "exVatAmount": {
          "type": "integer",
          "format": "int32"
        },
        "vatAmount": {
          "type": "integer",
          "format": "int32"
        },
        "totalAmount": {
          "type": "integer",
          "format": "int32"
        },
        "settled": {
          "type": "boolean"
        },
        "reconciled": {
          "type": "boolean"
        },
        "bankTransactionId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "accountingInvoiceId": {
          "type": "string"
        },
        "accountingInvoiceNumber": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "billingMethod": {
          "type": "string"
        }
      }
    },
    "modelInvoiceFeesCreateRequest": {
      "type": "object",
      "properties": {
        "feeIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelInvoiceGetManyResponse": {
      "type": "object",
      "properties": {
        "invoices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelInvoice"
          }
        }
      }
    },
    "modelInvoicePdfResponse": {
      "type": "object",
      "properties": {
        "redirectUrl": {
          "type": "string"
        }
      }
    },
    "modelInvoiceReport": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "exVatAmount": {
          "type": "integer",
          "format": "int32"
        },
        "vatAmount": {
          "type": "integer",
          "format": "int32"
        },
        "totalAmount": {
          "type": "integer",
          "format": "int32"
        },
        "settled": {
          "type": "boolean"
        },
        "reconciled": {
          "type": "boolean"
        },
        "bankTransactionId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "accountingInvoiceId": {
          "type": "string"
        },
        "accountingInvoiceNumber": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "feesPerProduct": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelFeesPerProduct"
          }
        },
        "report": {
          "$ref": "#/definitions/modelReport"
        },
        "billingMethod": {
          "type": "string"
        }
      }
    },
    "modelInvoiceResponse": {
      "type": "object"
    },
    "modelInvoiceUpdatePdfRequest": {
      "type": "object",
      "properties": {
        "accountingPdfLocation": {
          "type": "string"
        }
      }
    },
    "modelInvoiceUpdateRequest": {
      "type": "object",
      "properties": {
        "invoiceId": {
          "type": "string"
        },
        "accountingInvoiceId": {
          "type": "string"
        },
        "accountingInvoiceNumber": {
          "type": "string"
        }
      }
    },
    "modelInvoicesResponse": {
      "type": "object",
      "properties": {
        "invoiceIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelJournalFeeResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "productName": {
          "type": "string"
        },
        "amountTotal": {
          "type": "number",
          "format": "double"
        },
        "amountExcludingVAT": {
          "type": "number",
          "format": "double"
        },
        "amountVAT": {
          "type": "number",
          "format": "double"
        },
        "orderId": {
          "type": "string"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "paymentId": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "settled": {
          "type": "boolean"
        },
        "reconciled": {
          "type": "boolean"
        },
        "settlementId": {
          "type": "string"
        },
        "invoiceId": {
          "type": "string"
        }
      }
    },
    "modelJournalFees": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "productName": {
          "type": "string"
        },
        "amountExcludingVAT": {
          "type": "number",
          "format": "double"
        },
        "amountVAT": {
          "type": "number",
          "format": "double"
        },
        "amountTotal": {
          "type": "number",
          "format": "double"
        },
        "merchantId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "settlementId": {
          "type": "string"
        },
        "paymentId": {
          "type": "string"
        }
      }
    },
    "modelJournalRequest": {
      "type": "object",
      "properties": {
        "orderId": {
          "type": "string"
        },
        "participantId": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelJournalResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        },
        "participantId": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "amountExcludingFee": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelLoginRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string",
          "required": [
            "true"
          ]
        },
        "password": {
          "type": "string",
          "format": "password",
          "required": [
            "true"
          ]
        },
        "rememberMe": {
          "type": "boolean"
        }
      }
    },
    "modelLogo": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelMerchantAccountSettings": {
      "type": "object",
      "properties": {
        "numberOfUsers": {
          "type": "integer",
          "format": "int32"
        },
        "apiAccess": {
          "type": "boolean"
        }
      }
    },
    "modelMerchantBillingSettlementRequest": {
      "type": "object",
      "properties": {
        "merchantName": {
          "type": "string"
        },
        "userName": {
          "type": "string"
        },
        "userEmail": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "merchantContactNumber": {
          "type": "string"
        },
        "message": {
          "type": "string"
        }
      }
    },
    "modelMerchantBillingSettlementResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        }
      }
    },
    "modelMerchantIdResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        }
      }
    },
    "modelMerchantOnboarding": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "physicalAddress": {
          "$ref": "#/definitions/modelBillingAddress"
        }
      }
    },
    "modelMerchantRequest": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "flatFee": {
          "type": "integer",
          "format": "int32"
        },
        "percFee": {
          "type": "number",
          "format": "double"
        },
        "notifyUrl": {
          "type": "string"
        },
        "paymentNotifyUrl": {
          "type": "string"
        },
        "expire": {
          "type": "integer",
          "format": "int32"
        },
        "merchantTermsLink": {
          "type": "string"
        },
        "supportEmail": {
          "type": "string"
        },
        "supportMobile": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "newOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "amendmentOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "cancelledOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "completedOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "successfulPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "failedPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "missedPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "autoSettlement": {
          "type": "boolean"
        },
        "settlementFrequency": {
          "type": "string"
        },
        "settlementType": {
          "type": "string"
        },
        "settlementDay": {
          "type": "integer",
          "format": "int32"
        },
        "bankDetails": {
          "$ref": "#/definitions/modelBankDetails"
        },
        "absorbsFee": {
          "type": "boolean"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "paymentPlans": {
          "$ref": "#/definitions/modelPaymentPlanSettings"
        },
        "expiredOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "completedOrder_75": {
          "$ref": "#/definitions/modelNotification_Percentage"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "features": {
          "$ref": "#/definitions/modelFeature"
        },
        "cancellationRequest": {
          "$ref": "#/definitions/modelNotification"
        },
        "billingAddress": {
          "$ref": "#/definitions/modelBillingAddress"
        },
        "vatNo": {
          "type": "string"
        },
        "registeredEntity": {
          "type": "string"
        },
        "settlements": {
          "$ref": "#/definitions/modelNotification"
        },
        "invoices": {
          "$ref": "#/definitions/modelNotification"
        },
        "onboardingState": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "contractDocumentId": {
          "type": "string"
        },
        "merchantBankingPercFee": {
          "type": "integer",
          "format": "int32"
        },
        "adminPercFee": {
          "type": "integer",
          "format": "int32"
        },
        "contractUrl": {
          "type": "string"
        },
        "contractUpdated": {
          "type": "boolean"
        },
        "bankDetailsValidation": {
          "$ref": "#/definitions/modelBankInfo"
        },
        "bankValidationPendingReference": {
          "type": "string"
        },
        "merchantContractSigned": {
          "type": "string"
        },
        "transfers": {
          "$ref": "#/definitions/modelNotification"
        },
        "refunds": {
          "$ref": "#/definitions/modelNotification"
        },
        "simulated": {
          "type": "boolean"
        },
        "suspendedOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "displayOnWeb": {
          "$ref": "#/definitions/modelshopDirectorySettings"
        },
        "tradingName": {
          "type": "string"
        },
        "pricelistId": {
          "type": "string"
        },
        "communication": {
          "$ref": "#/definitions/modelCommunication"
        },
        "defaultBillingMethod": {
          "type": "string"
        },
        "enableTwoFactorAuthentication": {
          "type": "boolean"
        },
        "voucherSettings": {
          "$ref": "#/definitions/modelMerchantVoucherSettings"
        },
        "settlementBatchReferencePrefix": {
          "type": "string"
        }
      },
      "title": "-- Communication"
    },
    "modelMerchantResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "flatFee": {
          "type": "integer",
          "format": "int32"
        },
        "percFee": {
          "type": "number",
          "format": "double"
        },
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelUser"
          }
        },
        "notifyUrl": {
          "type": "string"
        },
        "paymentNotifyUrl": {
          "type": "string"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "merchantTermsLink": {
          "type": "string"
        },
        "settlementDay": {
          "type": "integer",
          "format": "int32"
        },
        "settlementFrequency": {
          "type": "string"
        },
        "settlementType": {
          "type": "string"
        },
        "supportEmail": {
          "type": "string"
        },
        "supportMobile": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "newOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "amendmentOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "cancelledOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "completedOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "successfulPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "failedPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "missedPayment": {
          "$ref": "#/definitions/modelNotification"
        },
        "autoSettlement": {
          "type": "boolean"
        },
        "absorbsFee": {
          "type": "boolean"
        },
        "expire": {
          "type": "integer",
          "format": "int32"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "paymentPlans": {
          "$ref": "#/definitions/modelPaymentPlanSettings"
        },
        "expiredOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "completedOrder_75": {
          "$ref": "#/definitions/modelNotification_Percentage"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "features": {
          "$ref": "#/definitions/modelFeature"
        },
        "cancellationRequest": {
          "$ref": "#/definitions/modelNotification"
        },
        "merchantName": {
          "type": "string"
        },
        "billingAddress": {
          "$ref": "#/definitions/modelBillingAddress"
        },
        "vatNo": {
          "type": "string"
        },
        "registeredEntity": {
          "type": "string"
        },
        "bankDetails": {
          "$ref": "#/definitions/modelBankDetails"
        },
        "settlements": {
          "$ref": "#/definitions/modelNotification"
        },
        "invoices": {
          "$ref": "#/definitions/modelNotification"
        },
        "onboardingState": {
          "type": "string"
        },
        "accountType": {
          "type": "string"
        },
        "contractDocumentId": {
          "type": "string"
        },
        "merchantBankingPercFee": {
          "type": "integer",
          "format": "int32"
        },
        "adminPercFee": {
          "type": "integer",
          "format": "int32"
        },
        "contractUrl": {
          "type": "string"
        },
        "contractUpdated": {
          "type": "boolean"
        },
        "bankDetailsValidation": {
          "$ref": "#/definitions/modelBankInfo"
        },
        "bankValidationPendingReference": {
          "type": "string"
        },
        "merchantContractSigned": {
          "type": "string"
        },
        "transfers": {
          "$ref": "#/definitions/modelNotification"
        },
        "refunds": {
          "$ref": "#/definitions/modelNotification"
        },
        "suspendedOrder": {
          "$ref": "#/definitions/modelNotification"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "displayOnWeb": {
          "$ref": "#/definitions/modelshopDirectorySettings"
        },
        "tradingName": {
          "type": "string"
        },
        "pricelistId": {
          "type": "string"
        },
        "accountSettings": {
          "$ref": "#/definitions/modelMerchantAccountSettings"
        },
        "feeSystem": {
          "type": "string"
        },
        "communication": {
          "$ref": "#/definitions/modelCommunication"
        },
        "defaultBillingMethod": {
          "type": "string"
        },
        "enableTwoFactorAuthentication": {
          "type": "boolean"
        },
        "voucherSettings": {
          "$ref": "#/definitions/modelMerchantVoucherSettings"
        },
        "settlementBatchReferencePrefix": {
          "type": "string"
        },
        "terminalSettings": {
          "$ref": "#/definitions/modelTerminalSettings"
        }
      }
    },
    "modelMerchantResponseGetShops": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "displayOnWeb": {
          "$ref": "#/definitions/modelshopDirectorySettings"
        },
        "createdAt": {
          "type": "string"
        }
      }
    },
    "modelMerchantResponseShops": {
      "type": "object",
      "properties": {
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "shops": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelMerchantResponseGetShops"
          }
        }
      }
    },
    "modelMerchantToSettleResponse": {
      "type": "object",
      "properties": {
        "merchants": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelMerchantIdResponse"
          }
        }
      }
    },
    "modelMerchantVoucherSettings": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "minimumSavingGoalInCents": {
          "type": "integer",
          "format": "int32"
        },
        "maximumSavingGoalInCents": {
          "type": "integer",
          "format": "int32"
        },
        "rewardType": {
          "type": "string"
        },
        "rewardFlatAmountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "rewardPercentage": {
          "type": "integer",
          "format": "int32"
        },
        "voucherProviders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelVoucherProvider"
          }
        }
      }
    },
    "modelMerchants": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "modelMessageNotification": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    },
    "modelNameAndValue": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelNote": {
      "type": "object",
      "properties": {
        "change": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "details": {
          "type": "string"
        },
        "read": {
          "type": "boolean"
        },
        "userId": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "hide": {
          "type": "boolean"
        },
        "unread": {
          "type": "boolean"
        }
      }
    },
    "modelNotification": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "modelNotification_Percentage": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "emails": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "value": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelOfflinePaymentRequest": {
      "type": "object",
      "example": {
        "amount": 13333,
        "note": "Processed by employeeX",
        "paymentPlanId": "123f7f1496bd78001d6852f3",
        "reference": "Cash in hand",
        "verifiedAt": "2022-01-27T14:00:00.000Z"
      },
      "properties": {
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "verifiedAt": {
          "type": "string"
        },
        "paymentType": {
          "type": "string"
        },
        "excludeFees": {
          "type": "boolean"
        },
        "settled": {
          "type": "boolean"
        }
      }
    },
    "modelOrderAmendmentRequest": {
      "type": "object",
      "example": {
        "orderId": "123f7f1496bd78001d6852f3",
        "amendmentType": "PRODUCT:UPDATE",
        "products": "ProductCreateRequest"
      },
      "properties": {
        "orderId": {
          "type": "string"
        },
        "amendmentType": {
          "type": "string"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductCreateRequest"
          }
        },
        "endDate": {
          "type": "string"
        }
      }
    },
    "modelOrderAmendmentResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        },
        "amendmentType": {
          "type": "string"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductResponse"
          }
        },
        "endDate": {
          "type": "string"
        },
        "from": {
          "$ref": "#/definitions/modelOrderResponse"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      }
    },
    "modelOrderAmendmentResponseMany": {
      "type": "object",
      "properties": {
        "orderAmendments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelOrderAmendmentResponse"
          }
        }
      }
    },
    "modelOrderCancellationTermsResponse": {
      "type": "object",
      "properties": {
        "autoCancellation": {
          "type": "boolean"
        },
        "definition": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelCancellationDefinition"
          }
        }
      }
    },
    "modelOrderExpiry": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "value": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelOrderExpiryReminder": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "daysBeforeExpiryInDays": {
          "type": "integer",
          "format": "int32"
        }
      },
      "title": "Communication"
    },
    "modelOrderRequest": {
      "type": "object",
      "example": {
        "products": "ProductCreateRequest",
        "endDateMax": "2019-08-24T14:15:22Z",
        "depositPerc": 5,
        "reference": "string",
        "name": "string",
        "depositType": "INSTALMENT"
      },
      "properties": {
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductCreateRequest"
          }
        },
        "endDateMax": {
          "type": "string",
          "format": "date-time"
        },
        "endDateMin": {
          "type": "string",
          "format": "date-time"
        },
        "depositPerc": {
          "type": "number",
          "format": "double"
        },
        "reference": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "absorbsFee": {
          "type": "boolean"
        },
        "enablesSplit": {
          "type": "boolean"
        },
        "depositType": {
          "type": "string",
          "enum": [
            "INSTALMENT",
            "FLAT",
            "PERCENTAGE"
          ],
          "required": [
            "true"
          ]
        },
        "expire": {
          "type": "integer",
          "format": "int32"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "paymentMethods": {
          "$ref": "#/definitions/modelPaymentMethod"
        },
        "cancellationPolicy": {
          "$ref": "#/definitions/modelCancellationPolicy"
        },
        "groupPaymentPlan": {
          "$ref": "#/definitions/modelGroupPayment"
        },
        "cloneExpiry": {
          "type": "integer",
          "format": "int32"
        },
        "orderCancellationRequest": {
          "type": "string"
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelNote"
          }
        },
        "acceptedProposedCancellationTerms": {
          "type": "boolean"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "amortiseOnMissed": {
          "type": "boolean"
        },
        "amortiseOnAmend": {
          "type": "boolean"
        },
        "suspendOnCancel": {
          "type": "boolean"
        },
        "orderRefundRequest": {
          "type": "string"
        },
        "completedOrderRefundRequest": {
          "type": "boolean"
        },
        "orderRefundAmount": {
          "type": "integer",
          "format": "int32"
        },
        "orderRefundFee": {
          "type": "integer",
          "format": "int32"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "voucherSettings": {
          "$ref": "#/definitions/modelVoucherSettings"
        },
        "merchantId": {
          "type": "string"
        }
      }
    },
    "modelOrderResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "endDateMax": {
          "type": "string",
          "format": "date-time",
          "required": [
            "true"
          ]
        },
        "endDateMin": {
          "type": "string",
          "format": "date-time"
        },
        "initiatorId": {
          "type": "string"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductResponse"
          }
        },
        "state": {
          "enum": [
            "PARTIAL",
            "PLACED",
            "COMPLETED",
            "CANCELLED",
            "CANCELLING",
            "EXPIRED",
            "SUSPENDED"
          ],
          "default": "PARTIAL"
        },
        "supplierId": {
          "type": "string"
        },
        "cancelledBy": {
          "type": "string"
        },
        "amountDue": {
          "type": "integer",
          "format": "int32"
        },
        "flatFee": {
          "type": "integer",
          "format": "int32"
        },
        "percFee": {
          "type": "number",
          "format": "double"
        },
        "depositPerc": {
          "type": "number",
          "format": "double"
        },
        "absorbsFee": {
          "type": "boolean"
        },
        "reference": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "plans": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentPlanResponse"
          }
        },
        "createdAt": {
          "type": "string"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "enablesSplit": {
          "type": "boolean"
        },
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string",
          "enum": [
            "INSTALMENT",
            "FLAT",
            "PERCENTAGE"
          ],
          "required": [
            "true"
          ]
        },
        "expire": {
          "type": "string"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "paymentMethods": {
          "$ref": "#/definitions/modelPaymentMethod"
        },
        "stateUpdatedAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "groupPaymentPlan": {
          "$ref": "#/definitions/modelGroupPayment"
        },
        "cloneExpiry": {
          "type": "integer",
          "format": "int32"
        },
        "cloneCount": {
          "type": "integer",
          "format": "int32"
        },
        "orderCancellationRequest": {
          "type": "string"
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelNote"
          }
        },
        "acceptedProposedCancellationTerms": {
          "type": "boolean"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "merchantName": {
          "type": "string"
        },
        "merchantTermsLink": {
          "type": "string"
        },
        "merchantLink": {
          "type": "string"
        },
        "debiCheckMinimum": {
          "$ref": "#/definitions/modelValueEnabledPair"
        },
        "supplier": {
          "$ref": "#/definitions/modelSupplier"
        },
        "orderRefundRequest": {
          "type": "string"
        },
        "orderRefundAmount": {
          "type": "integer",
          "format": "int32"
        },
        "orderRefundFee": {
          "type": "integer",
          "format": "int32"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "balance": {
          "type": "integer",
          "format": "int32"
        },
        "description": {
          "type": "string"
        },
        "isIncreasedDepositAmountAllowed": {
          "type": "boolean"
        },
        "suspendOnCancel": {
          "type": "boolean"
        },
        "voucherSettings": {
          "$ref": "#/definitions/modelVoucherSettings"
        }
      }
    },
    "modelOrderResponseMany": {
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelOrderResponse"
          }
        }
      }
    },
    "modelOrderSendRequest": {
      "type": "object",
      "example": {
        "amount": 10000,
        "paymentMethod": "CARD",
        "type": "sms",
        "orderId": "123f7f1496bd78001d6852f3",
        "customerId": "123f7f1496bd78001d6852f3",
        "message": "string"
      },
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "sms",
            "email",
            "none"
          ]
        },
        "orderId": {
          "type": "string"
        },
        "orderUrl": {
          "type": "string"
        },
        "contact": {
          "type": "string",
          "pattern": "^\\+27\\d{9}$"
        },
        "message": {
          "type": "string"
        },
        "customerId": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paymentMethod": {
          "type": "string",
          "enum": [
            "CARD",
            "EFT",
            "DEBICHECK"
          ]
        }
      }
    },
    "modelOrderSendRequestResponse": {
      "type": "object",
      "example": {
        "success": true,
        "orderUrl": "https://sandbox.layup.co.za/order/123f7f1496bd78001d6852f3?paymentMethod=CARD&amount=10000"
      },
      "properties": {
        "success": {
          "type": "boolean"
        },
        "orderUrl": {
          "type": "string"
        }
      }
    },
    "modelOrderUpdateRequest": {
      "type": "object",
      "example": {
        "state": "PLACED"
      },
      "properties": {
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductCreateRequest"
          }
        },
        "endDateMax": {
          "type": "string"
        },
        "endDateMin": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "depositPerc": {
          "type": "number",
          "format": "double"
        },
        "reference": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "absorbsFee": {
          "type": "boolean"
        },
        "enablesSplit": {
          "type": "boolean"
        },
        "depositType": {
          "type": "string"
        },
        "expire": {
          "type": "integer",
          "format": "int32"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "paymentMethods": {
          "$ref": "#/definitions/modelPaymentMethod"
        },
        "cancellationPolicy": {
          "$ref": "#/definitions/modelCancellationPolicy"
        },
        "groupPaymentPlan": {
          "$ref": "#/definitions/modelGroupPayment"
        },
        "cloneExpiry": {
          "type": "integer",
          "format": "int32"
        },
        "orderCancellationRequest": {
          "type": "string"
        },
        "notifications": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelNote"
          }
        },
        "acceptedProposedCancellationTerms": {
          "type": "boolean"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "amortiseOnMissed": {
          "type": "boolean"
        },
        "amortiseOnAmend": {
          "type": "boolean"
        },
        "suspendOnCancel": {
          "type": "boolean"
        },
        "orderRefundRequest": {
          "type": "string"
        },
        "completedOrderRefundRequest": {
          "type": "boolean"
        },
        "orderRefundAmount": {
          "type": "integer",
          "format": "int32"
        },
        "orderRefundFee": {
          "type": "integer",
          "format": "int32"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "modelPayAtAuthorizationRequest": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        }
      }
    },
    "modelPayAtAuthorizationResponse": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "responseCode": {
          "type": "string"
        },
        "responseText": {
          "type": "string"
        },
        "issuerTransactionID": {
          "type": "string"
        },
        "customerData": {
          "$ref": "#/definitions/modelPayAtCustomerData"
        }
      }
    },
    "modelPayAtCustomerData": {
      "type": "object",
      "properties": {
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    },
    "modelPayAtEchoTestRequest": {
      "type": "object",
      "properties": {
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "echoData": {
          "type": "string"
        }
      }
    },
    "modelPayAtEchoTestResponse": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "echoData": {
          "type": "string"
        },
        "responseCode": {
          "type": "string"
        },
        "responseText": {
          "type": "string"
        }
      }
    },
    "modelPayAtEnquiryRequest": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        }
      }
    },
    "modelPayAtEnquiryResponse": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "dueDate": {
          "type": "string"
        },
        "exactAmount": {
          "type": "boolean"
        },
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "customerData": {
          "$ref": "#/definitions/modelPayAtCustomerData"
        },
        "responseText": {
          "type": "string"
        },
        "responseCode": {
          "type": "string"
        }
      }
    },
    "modelPayAtLoginData": {
      "type": "object",
      "properties": {
        "loginID": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      }
    },
    "modelPayAtNetworkData": {
      "type": "object",
      "properties": {
        "networkId": {
          "type": "integer",
          "format": "int32"
        },
        "networkName": {
          "type": "string"
        }
      }
    },
    "modelPayAtReverseAuthorizationRequest": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "issuerTransactionID": {
          "type": "string"
        },
        "repeatIndicator": {
          "type": "boolean"
        }
      }
    },
    "modelPayAtReverseAuthorizationResponse": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "responseCode": {
          "type": "string"
        },
        "responseText": {
          "type": "string"
        },
        "issuerTransactionID": {
          "type": "string"
        },
        "repeatIndicator": {
          "type": "boolean"
        },
        "customerData": {
          "$ref": "#/definitions/modelPayAtCustomerData"
        }
      }
    },
    "modelPayAtSecurityData": {
      "type": "object",
      "properties": {
        "login": {
          "$ref": "#/definitions/modelPayAtLoginData"
        }
      }
    },
    "modelPayAtTransactionAdviceRequest": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "tenderType": {
          "type": "string"
        },
        "repeatIndicator": {
          "type": "boolean"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "issuerTransactionID": {
          "type": "string"
        }
      }
    },
    "modelPayAtTransactionAdviceResponse": {
      "type": "object",
      "properties": {
        "messageID": {
          "type": "string"
        },
        "transmissionDateTime": {
          "type": "string"
        },
        "securityData": {
          "$ref": "#/definitions/modelPayAtSecurityData"
        },
        "accountNumber": {
          "type": "string"
        },
        "tenderType": {
          "type": "string"
        },
        "repeatIndicator": {
          "type": "boolean"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "networkData": {
          "$ref": "#/definitions/modelPayAtNetworkData"
        },
        "networkTransactionID": {
          "type": "string"
        },
        "issuerTransactionID": {
          "type": "string"
        },
        "responseCode": {
          "type": "string"
        },
        "responseText": {
          "type": "string"
        }
      }
    },
    "modelPaymentMethod": {
      "type": "object",
      "properties": {
        "creditOrDebitCard": {
          "type": "boolean"
        },
        "eft": {
          "type": "boolean"
        },
        "debiCheck": {
          "type": "boolean"
        },
        "payAt": {
          "type": "boolean"
        },
        "capitecPay": {
          "type": "boolean"
        },
        "dashpay": {
          "type": "boolean"
        },
        "terminalCard": {
          "type": "boolean"
        },
        "offline": {
          "type": "boolean"
        },
        "embeddedCheckout": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanBenefactor": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        }
      }
    },
    "modelPaymentPlanDelResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        },
        "benefactorId": {
          "type": "string"
        },
        "completed": {
          "type": "boolean"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "depositDue": {
          "type": "integer",
          "format": "int32"
        },
        "amountDue": {
          "type": "integer",
          "format": "int32"
        },
        "automaticBilling": {
          "type": "boolean"
        },
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPlanPayment"
          }
        },
        "active": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanPreviewRequest": {
      "type": "object",
      "properties": {
        "amountDue": {
          "type": "integer",
          "required": [
            "true"
          ]
        },
        "depositPerc": {
          "type": "number",
          "required": [
            "true"
          ]
        },
        "endDateMax": {
          "type": "string",
          "format": "date-time",
          "required": [
            "true"
          ]
        },
        "endDateMin": {
          "type": "string",
          "format": "date-time",
          "required": [
            "true"
          ]
        },
        "absorbsFee": {
          "type": "boolean",
          "required": [
            "true"
          ]
        },
        "frequency": {
          "type": "string",
          "enum": [
            "WEEKLY",
            "MONTHLY"
          ]
        },
        "offset": {
          "type": "integer",
          "format": "int32"
        },
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string",
          "enum": [
            "INSTALMENT",
            "FLAT",
            "PERCENTAGE"
          ],
          "required": [
            "true"
          ]
        },
        "flatFee": {
          "type": "number",
          "format": "double"
        },
        "percFee": {
          "type": "number",
          "format": "double"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelPaymentPlanPreviewResponse": {
      "type": "object",
      "properties": {
        "months": {
          "type": "integer",
          "format": "int32"
        },
        "deposit": {
          "type": "integer",
          "format": "int32"
        },
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentResponse"
          }
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "orderState": {
          "type": "string"
        }
      }
    },
    "modelPaymentPlanPreviewResponseMany": {
      "type": "object",
      "properties": {
        "amountDue": {
          "type": "integer",
          "format": "int32"
        },
        "merchant": {
          "type": "string"
        },
        "merchantTermsLink": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "orderName": {
          "type": "string"
        },
        "depositDue": {
          "type": "integer",
          "format": "int32"
        },
        "endDateMax": {
          "type": "string"
        },
        "imageUrl": {
          "type": "string"
        },
        "enablesSplit": {
          "type": "boolean"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelProductResponse"
          }
        },
        "paymentPlans": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentPlanPreviewResponse"
          }
        },
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string",
          "enum": [
            "INSTALMENT",
            "FLAT",
            "PERCENTAGE"
          ],
          "required": [
            "true"
          ]
        },
        "flatFee": {
          "type": "number",
          "format": "double"
        },
        "percFee": {
          "type": "number",
          "format": "double"
        },
        "validDays": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "validDates": {
          "type": "array",
          "items": {
            "type": "integer",
            "format": "int32"
          }
        },
        "amountDueExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "depositDueExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "paymentMethods": {
          "$ref": "#/definitions/modelPaymentMethod"
        },
        "weeklyPayments": {
          "type": "boolean"
        },
        "orderState": {
          "type": "string"
        },
        "groupPaymentPlan": {
          "$ref": "#/definitions/modelGroupPayment"
        },
        "orderToClone": {
          "$ref": "#/definitions/modelOrderResponse"
        },
        "customFeatures": {
          "$ref": "#/definitions/modelCustomize"
        },
        "cancellationTerms": {
          "$ref": "#/definitions/modelCancellationTermRequest"
        },
        "initiatorId": {
          "type": "string"
        },
        "debiCheckMinimum": {
          "$ref": "#/definitions/modelValueEnabledPair"
        },
        "monthlyPayments": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanRequest": {
      "type": "object",
      "properties": {
        "orderId": {
          "type": "string"
        },
        "benefactorId": {
          "type": "string"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "automaticBilling": {
          "type": "boolean"
        },
        "frequency": {
          "type": "string",
          "title": "weekly or monthly"
        },
        "offset": {
          "type": "integer",
          "format": "int32",
          "title": "for weekly 0-6, for monthly 0-30"
        },
        "token": {
          "type": "string"
        },
        "agreedToTerms": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        },
        "benefactorId": {
          "type": "string"
        },
        "completed": {
          "type": "boolean"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "depositDue": {
          "type": "integer",
          "format": "int32"
        },
        "amountDue": {
          "type": "integer",
          "format": "int32"
        },
        "automaticBilling": {
          "type": "boolean"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPlanPayment"
          }
        },
        "benefactor": {
          "$ref": "#/definitions/modelPaymentPlanBenefactor"
        },
        "frequency": {
          "type": "string",
          "enum": [
            "WEEKLY",
            "MONTHLY"
          ]
        },
        "offset": {
          "type": "integer",
          "format": "int32"
        },
        "depositDueExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "amountDueExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "order": {
          "$ref": "#/definitions/modelOrderResponse"
        },
        "debicheckStatus": {
          "type": "string"
        },
        "debicheckLastFailedReasons": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "debicheckMandateActiveId": {
          "type": "string"
        },
        "debicheckMandateIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "payAtReferenceNumber": {
          "type": "string"
        },
        "agreedToTerms": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanResponseMany": {
      "type": "object",
      "properties": {
        "paymentPlans": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentPlanResponse"
          }
        }
      }
    },
    "modelPaymentPlanSendNotificationRequest": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        }
      }
    },
    "modelPaymentPlanSettings": {
      "type": "object",
      "properties": {
        "weeklyPayments": {
          "type": "boolean"
        },
        "splitPayments": {
          "type": "boolean"
        },
        "orderExpiry": {
          "$ref": "#/definitions/modelOrderExpiry"
        },
        "maxMonths": {
          "$ref": "#/definitions/modelValueEnabledPair"
        },
        "paymentMethods": {
          "$ref": "#/definitions/modelPaymentMethod"
        },
        "editPaymentPlanSettings": {
          "type": "boolean"
        },
        "defaultDepositType": {
          "$ref": "#/definitions/modelDefaultDepositType"
        },
        "minMonths": {
          "$ref": "#/definitions/modelValueEnabledPair"
        },
        "debiCheckMinimum": {
          "$ref": "#/definitions/modelValueEnabledPair"
        },
        "monthlyPayments": {
          "type": "boolean"
        },
        "suspendOnCancel": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentPlanSplitBody": {
      "type": "object",
      "properties": {
        "clients": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelSplitUser"
          }
        },
        "paymentPlan": {
          "$ref": "#/definitions/modelPaymentPlanRequest"
        },
        "redirectTo": {
          "type": "string"
        },
        "verificationRedirect": {
          "type": "string"
        }
      }
    },
    "modelPaymentProviderResponses": {
      "type": "object"
    },
    "modelPaymentProviderSettlement": {
      "type": "object",
      "properties": {
        "amountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "reference": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        },
        "paymentProviderPaymentId": {
          "type": "string"
        },
        "transactionDate": {
          "type": "string"
        },
        "paymentReference": {
          "type": "string"
        },
        "fileStorageReference": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "feeInCents": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelPaymentProviderSettlementResponse": {
      "type": "object",
      "properties": {
        "amountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "reference": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        },
        "paymentProviderPaymentId": {
          "type": "string"
        },
        "transactionDate": {
          "type": "string"
        },
        "paymentReference": {
          "type": "string"
        },
        "fileStorageReference": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "feeInCents": {
          "type": "integer",
          "format": "int32"
        },
        "_id": {
          "type": "string"
        }
      }
    },
    "modelPaymentProviderSettlementsRequest": {
      "type": "object",
      "properties": {
        "paymentProviderSettlements": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentProviderSettlement"
          }
        }
      }
    },
    "modelPaymentProviderSettlementsResponse": {
      "type": "object",
      "properties": {
        "settlements": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentProviderSettlementResponse"
          }
        }
      }
    },
    "modelPaymentRedirectResponse": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "parameters": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelNameAndValue"
          }
        },
        "method": {
          "type": "string"
        },
        "_id": {
          "type": "string"
        },
        "checkoutId": {
          "type": "string"
        }
      }
    },
    "modelPaymentReportResponse": {
      "type": "object",
      "properties": {
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelReportPayment"
          }
        },
        "export": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelReportExport"
          }
        }
      }
    },
    "modelPaymentRequest": {
      "type": "object",
      "properties": {
        "paymentPlanId": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "notifyUrl": {
          "type": "string"
        },
        "useSavedCard": {
          "type": "boolean"
        },
        "eft": {
          "type": "boolean"
        },
        "checkout": {
          "type": "boolean"
        },
        "save": {
          "type": "boolean",
          "title": "save card used in checkout"
        },
        "suspenseId": {
          "type": "string"
        },
        "connectorData": {
          "$ref": "#/definitions/modelConnectorData"
        },
        "paid": {
          "type": "boolean"
        },
        "failed": {
          "type": "boolean"
        },
        "payAt": {
          "type": "boolean"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentProviderSettlementId": {
          "type": "string"
        },
        "destinationType": {
          "type": "string"
        },
        "destinationId": {
          "type": "string"
        },
        "isEmbeddedCheckout": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentRequestV2": {
      "type": "object",
      "properties": {
        "destinationId": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "redirectUrl": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        },
        "destinationType": {
          "type": "string",
          "title": "paymentPlan | invoice"
        },
        "connectorData": {
          "$ref": "#/definitions/modelConnectorDataV2"
        },
        "save": {
          "type": "boolean"
        }
      }
    },
    "modelPaymentResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "paymentPlanId": {
          "type": "string"
        },
        "due": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paid": {
          "type": "boolean"
        },
        "userId": {
          "type": "string"
        },
        "locked": {
          "type": "boolean"
        },
        "pending": {
          "type": "boolean"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentType": {
          "type": "string"
        },
        "note": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "orderStatus": {
          "type": "string"
        },
        "amountExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "fee": {
          "type": "integer",
          "format": "int32"
        },
        "failed": {
          "type": "boolean"
        },
        "verifyError": {
          "type": "string"
        },
        "refundedAmount": {
          "type": "integer",
          "format": "int32"
        },
        "refundPaymentId": {
          "type": "string"
        },
        "connectorData": {
          "$ref": "#/definitions/modelConnectorData"
        },
        "destinationId": {
          "type": "string"
        },
        "destinationType": {
          "type": "string"
        }
      }
    },
    "modelPaymentResponseMany": {
      "type": "object",
      "properties": {
        "payments": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelPaymentResponse"
          }
        }
      }
    },
    "modelPaymentWidgetLogo": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelPlanPayment": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "due": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paid": {
          "type": "boolean"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentType": {
          "type": "string"
        },
        "amountExcludingFee": {
          "type": "integer",
          "format": "int32"
        },
        "fee": {
          "type": "integer",
          "format": "int32"
        },
        "pending": {
          "type": "boolean"
        },
        "failed": {
          "type": "boolean"
        },
        "reconciliated": {
          "type": "boolean"
        },
        "refundedAmount": {
          "type": "integer",
          "format": "int32"
        },
        "refundPaymentId": {
          "type": "string"
        },
        "connectorData": {
          "$ref": "#/definitions/modelPlanPaymentConnectorData"
        },
        "verifiedAt": {
          "type": "string"
        },
        "dueAt": {
          "type": "string"
        }
      }
    },
    "modelPlanPaymentConnectorData": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "paymentProviderPaymentId": {
          "type": "string"
        },
        "paymentReference": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentProvider": {
          "type": "string"
        },
        "paymentProviderResponses": {
          "$ref": "#/definitions/modelPaymentProviderResponses"
        }
      }
    },
    "modelPopulate": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string"
        },
        "select": {
          "type": "string"
        },
        "populate": {
          "$ref": "#/definitions/modelPopulateNested"
        }
      }
    },
    "modelPopulateNested": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string"
        },
        "select": {
          "type": "string"
        }
      }
    },
    "modelProduct": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "feeType": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "billingType": {
          "type": "string"
        }
      }
    },
    "modelProductCreateRequest": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "link": {
          "type": "string",
          "format": "uri"
        },
        "sku": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "depositType": {
          "type": "string"
        }
      }
    },
    "modelProductResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "link": {
          "type": "string",
          "format": "uri"
        },
        "sku": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "depositType": {
          "type": "string"
        }
      }
    },
    "modelRefundPaymentRequest": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "refundReference": {
          "type": "string"
        },
        "paymentId": {
          "type": "string"
        },
        "excludeFees": {
          "type": "boolean"
        },
        "refundMethod": {
          "type": "string"
        },
        "autoRefund": {
          "type": "boolean"
        }
      }
    },
    "modelRejectedReasons": {
      "type": "object",
      "properties": {
        "contractReference": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        }
      }
    },
    "modelRejectedTransaction": {
      "type": "object",
      "properties": {
        "transmissionDate": {
          "type": "string"
        },
        "originalSequenceNumber": {
          "type": "integer",
          "format": "int32"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "userReference": {
          "type": "string"
        },
        "rejectionReason": {
          "type": "string"
        }
      }
    },
    "modelReport": {
      "type": "object",
      "properties": {
        "totalFeesAmount": {
          "type": "integer",
          "format": "int32"
        },
        "totalFeesExtAmount": {
          "type": "integer",
          "format": "int32"
        },
        "totalAmountVAT": {
          "type": "integer",
          "format": "int32"
        },
        "feesPerProductExcludingVATTotal": {
          "type": "integer",
          "format": "int32"
        },
        "feesPerProductVATTotal": {
          "type": "integer",
          "format": "int32"
        },
        "feesPerProductTotal": {
          "type": "integer",
          "format": "int32"
        },
        "fees": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelJournalFees"
          }
        }
      }
    },
    "modelReportExport": {
      "type": "object",
      "properties": {
        "client": {
          "type": "string"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "createdAt": {
          "type": "string"
        },
        "verifiedAt": {
          "type": "string"
        },
        "due": {
          "type": "string"
        },
        "fee": {
          "type": "number",
          "format": "double"
        },
        "orderName": {
          "type": "string"
        },
        "orderReference": {
          "type": "string"
        },
        "paymentStatus": {
          "type": "string"
        },
        "paymentType": {
          "type": "string"
        },
        "settlementBatch": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "datePaid": {
          "type": "string"
        },
        "dateSettled": {
          "type": "string"
        }
      }
    },
    "modelReportPayment": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "client": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "datePaid": {
          "type": "string"
        },
        "due": {
          "type": "string"
        },
        "fee": {
          "type": "number",
          "format": "double"
        },
        "fees": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelFee"
          }
        },
        "feesPerProduct": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelFeePerProduct"
          }
        },
        "locked": {
          "type": "boolean"
        },
        "orderName": {
          "type": "string"
        },
        "orderReference": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "paymentStatus": {
          "type": "string"
        },
        "paymentType": {
          "type": "string"
        },
        "settlementBatch": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "verifiedAt": {
          "type": "string"
        },
        "dateSettled": {
          "type": "string"
        }
      }
    },
    "modelSettlementDownloadResponse": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "title": "The location that the user will be redirected to"
        }
      }
    },
    "modelSettlementReport": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "batch": {
          "type": "number",
          "format": "double"
        },
        "batchType": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "settledAt": {
          "type": "string"
        },
        "reconciled": {
          "type": "boolean"
        }
      }
    },
    "modelSettlementReportResponse": {
      "type": "object",
      "properties": {
        "settlements": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelSettlementReport"
          }
        }
      }
    },
    "modelSettlementRequest": {
      "type": "object",
      "properties": {
        "merchantId": {
          "type": "string"
        },
        "to": {
          "type": "string"
        },
        "from": {
          "type": "string"
        },
        "batchType": {
          "type": "string"
        },
        "automatic": {
          "type": "boolean"
        },
        "negative": {
          "type": "boolean"
        },
        "preview": {
          "type": "boolean"
        }
      }
    },
    "modelSettlementResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "amount": {
          "type": "number",
          "format": "double"
        },
        "fee": {
          "type": "number",
          "format": "double"
        },
        "batch": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "merchantAccountId": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "dateSettled": {
          "type": "string"
        },
        "reconciled": {
          "type": "boolean"
        },
        "settled": {
          "type": "boolean"
        },
        "paymentIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "journalFees": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "batchType": {
          "type": "string"
        },
        "absaEftFile": {
          "type": "string"
        },
        "bankTransactionId": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        },
        "draft": {
          "type": "boolean"
        }
      }
    },
    "modelShopifyCalculateShippingResponse": {
      "type": "object",
      "properties": {
        "prices": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyShippingRate"
          }
        }
      }
    },
    "modelShopifyDiscountData": {
      "type": "object",
      "properties": {
        "discountType": {
          "type": "string"
        },
        "discountValue": {
          "type": "string"
        },
        "discountAllocation": {
          "type": "string"
        },
        "discountSelection": {
          "type": "string"
        },
        "discountTitle": {
          "type": "string"
        },
        "entitledProductIds": {
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        },
        "entitledVariantIds": {
          "type": "array",
          "items": {
            "type": "number",
            "format": "double"
          }
        }
      }
    },
    "modelShopifyDiscountResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "data": {
          "$ref": "#/definitions/modelShopifyDiscountData"
        }
      }
    },
    "modelShopifyGetShopSettingsResponse": {
      "type": "object",
      "properties": {
        "enabledOnAll": {
          "type": "boolean"
        },
        "enabledOnProduct": {
          "type": "boolean"
        },
        "enabledOnCart": {
          "type": "boolean"
        },
        "enabledAccept": {
          "type": "boolean"
        },
        "acceptMsg": {
          "type": "string"
        },
        "acceptBtn": {
          "type": "string"
        },
        "terms": {
          "type": "string"
        },
        "products": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyProductSettings"
          }
        },
        "logoUrl": {
          "type": "string"
        },
        "learnMore": {
          "type": "string"
        },
        "merchantName": {
          "type": "string"
        },
        "deposit": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string"
        },
        "minMonths": {
          "type": "integer",
          "format": "int32"
        },
        "maxMonths": {
          "type": "integer",
          "format": "int32"
        },
        "shopifyLocations": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyLocations"
          }
        },
        "enabledDiscount": {
          "type": "boolean"
        },
        "enabledOnPopupCart": {
          "type": "boolean"
        },
        "popupCartSelector": {
          "type": "string"
        },
        "popupCartQuantitySelector": {
          "type": "string"
        },
        "popupCartRemoveSelector": {
          "type": "string"
        },
        "buttonLayout": {
          "type": "string"
        }
      }
    },
    "modelShopifyLineItem": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "quantity": {
          "type": "number",
          "format": "double"
        },
        "sku": {
          "type": "string"
        },
        "image": {
          "$ref": "#/definitions/modelShopifyOrderImage"
        },
        "discountedTotalSet": {
          "$ref": "#/definitions/modelShopifyPriceSet"
        }
      }
    },
    "modelShopifyLinkDraftOrder": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "customer": {
          "$ref": "#/definitions/modelShopifyLinkOrderCustomer"
        },
        "totalPriceSet": {
          "type": "string"
        },
        "taxesIncluded": {
          "type": "boolean"
        },
        "lineItems": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyLineItem"
          }
        },
        "shippingLine": {
          "$ref": "#/definitions/modelShopifyShippingLine"
        },
        "totalTaxSet": {
          "type": "string"
        }
      }
    },
    "modelShopifyLinkOrderCustomer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        }
      }
    },
    "modelShopifyLocationAddress": {
      "type": "object",
      "properties": {
        "address1": {
          "type": "string"
        },
        "address2": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "zip": {
          "type": "string"
        }
      }
    },
    "modelShopifyLocations": {
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/definitions/modelShopifyLocationAddress"
        },
        "id": {
          "type": "string"
        },
        "legacyResourceId": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      }
    },
    "modelShopifyOrderImage": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        }
      }
    },
    "modelShopifyOrderNote": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    },
    "modelShopifyOrderNotesResponse": {
      "type": "object",
      "properties": {
        "notes": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyOrderNote"
          }
        },
        "tags": {
          "type": "string"
        }
      }
    },
    "modelShopifyOrderResponse": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "data": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        }
      }
    },
    "modelShopifyPriceSet": {
      "type": "object",
      "properties": {
        "shopMoney": {
          "$ref": "#/definitions/modelShopifyShopMoney"
        }
      }
    },
    "modelShopifyProduct": {
      "type": "object",
      "properties": {
        "parentId": {
          "type": "number",
          "format": "double"
        },
        "requiresShipping": {
          "type": "boolean"
        },
        "quantity": {
          "type": "integer",
          "format": "int32"
        },
        "depositAmount": {
          "type": "integer",
          "format": "int32"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        },
        "maxMonths": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string"
        },
        "link": {
          "type": "string"
        },
        "singleAmount": {
          "type": "integer",
          "format": "int32"
        },
        "sku": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "id": {
          "type": "number",
          "format": "double"
        },
        "discounts": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelShopifyProductDiscount"
          }
        }
      }
    },
    "modelShopifyProductDiscount": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "amount": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "modelShopifyProductSettings": {
      "type": "object",
      "properties": {
        "productId": {
          "type": "string"
        },
        "eventDateString": {
          "type": "string"
        },
        "enabledOnLayup": {
          "type": "boolean"
        },
        "minMonths": {
          "type": "integer",
          "format": "int32"
        },
        "maxMonths": {
          "type": "integer",
          "format": "int32"
        },
        "deposit": {
          "type": "integer",
          "format": "int32"
        },
        "depositType": {
          "type": "string"
        },
        "previewTemplate": {
          "type": "string"
        },
        "learnMore": {
          "type": "string"
        },
        "layupType": {
          "type": "string"
        }
      }
    },
    "modelShopifyShipping": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      }
    },
    "modelShopifyShippingLine": {
      "type": "object",
      "properties": {
        "discountedPriceSet": {
          "type": "string"
        }
      }
    },
    "modelShopifyShippingRate": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string"
        },
        "amount": {
          "type": "string"
        },
        "handle": {
          "type": "string"
        }
      }
    },
    "modelShopifyShopMoney": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "string"
        }
      }
    },
    "modelSplitUser": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string",
          "format": "email"
        },
        "name": {
          "type": "string"
        },
        "cellNumber": {
          "type": "string",
          "pattern": "^\\+27\\d{9}$"
        }
      }
    },
    "modelStatementRequest": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        },
        "orderId": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "paymentPlanId": {
          "type": "string"
        }
      }
    },
    "modelStatementRequestResponse": {
      "type": "object",
      "properties": {
        "success": {
          "type": "boolean"
        }
      }
    },
    "modelSupplier": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        }
      }
    },
    "modelTerminalApiKeyResponse": {
      "type": "object",
      "properties": {
        "terminalApiKey": {
          "type": "string"
        }
      }
    },
    "modelTerminalCreateRequest": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string"
        },
        "serial": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "productId": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "billable": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      }
    },
    "modelTerminalPaymentAppResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "merchantId": {
          "type": "string"
        },
        "packageName": {
          "type": "string"
        },
        "paymentMethod": {
          "type": "string"
        },
        "provider": {
          "type": "string"
        }
      }
    },
    "modelTerminalPaymentAppsGetManyResponse": {
      "type": "object",
      "properties": {
        "terminalPaymentApps": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelTerminalPaymentAppResponse"
          }
        }
      }
    },
    "modelTerminalResponse": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "provider": {
          "type": "string"
        },
        "serial": {
          "type": "string"
        },
        "model": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "billable": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "defaultOrderName": {
          "type": "string"
        },
        "createdAt": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string"
        }
      }
    },
    "modelTerminalServiceupdateBody": {
      "type": "object",
      "properties": {
        "productId": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "billable": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "location": {
          "type": "string"
        },
        "userId": {
          "type": "string"
        }
      }
    },
    "modelTerminalSettings": {
      "type": "object",
      "properties": {
        "requireOrderReference": {
          "type": "boolean"
        },
        "forceUniqueOrderReference": {
          "type": "boolean"
        },
        "requireDeposit": {
          "type": "boolean"
        },
        "editableDescription": {
          "type": "boolean"
        }
      }
    },
    "modelTerminalsResponse": {
      "type": "object",
      "properties": {
        "terminals": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelTerminalResponse"
          }
        }
      }
    },
    "modelTokenRequest": {
      "type": "object",
      "properties": {
        "action": {
          "type": "string",
          "enum": [
            "VERIFYACCOUNT",
            "CREATEPAYMENTPLAN",
            "VIEWPAYMENTPLAN",
            "VERIFYACCOUNTCREATEPAYMENTPLAN"
          ]
        },
        "cellNumber": {
          "type": "string"
        },
        "reference": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "_id": {
          "type": "string"
        }
      }
    },
    "modelTransferPaymentRequest": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "_destinationPaymentPlanId": {
          "type": "string"
        },
        "amount": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelUser": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "idNumber": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "CLIENT",
            "MERCHANT",
            "ADMIN"
          ],
          "default": "CLIENT"
        },
        "active": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "cellNumber": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "verified": {
          "type": "boolean"
        },
        "verifiedEmail": {
          "type": "boolean"
        },
        "verifiedMobile": {
          "type": "boolean"
        },
        "merchantRole": {
          "type": "string"
        },
        "merchantIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "This user is loaded in by the authentication middleware."
    },
    "modelUserRequest": {
      "type": "object",
      "properties": {
        "username": {
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "idNumber": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "CLIENT",
            "MERCHANT",
            "ADMIN"
          ],
          "default": "CLIENT"
        },
        "password": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string"
        },
        "cellNumber": {
          "type": "string",
          "pattern": "^\\+27\\d{9}$"
        },
        "redirectTo": {
          "type": "string"
        },
        "apikey": {
          "type": "string"
        },
        "shouldWelcome": {
          "type": "boolean"
        },
        "merchantCreatePlan": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "merchantRole": {
          "type": "string"
        },
        "bankDetails": {
          "$ref": "#/definitions/modelBankInfo"
        },
        "merchantOnboarding": {
          "$ref": "#/definitions/modelMerchantOnboarding"
        },
        "bankValidationPendingReference": {
          "type": "string"
        },
        "passportState": {
          "type": "string"
        },
        "passportNumber": {
          "type": "string"
        },
        "profileImage": {
          "type": "string"
        },
        "merchantIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "isMerchantOwner": {
          "type": "boolean"
        }
      }
    },
    "modelUserResponse": {
      "type": "object",
      "properties": {
        "_id": {
          "type": "string"
        },
        "username": {
          "type": "string"
        },
        "email": {
          "type": "string",
          "format": "email"
        },
        "idNumber": {
          "type": "string"
        },
        "address": {
          "type": "string"
        },
        "postalCode": {
          "type": "string"
        },
        "city": {
          "type": "string"
        },
        "province": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "role": {
          "type": "string",
          "enum": [
            "CLIENT",
            "MERCHANT",
            "ADMIN"
          ],
          "default": "CLIENT"
        },
        "active": {
          "type": "boolean"
        },
        "merchantId": {
          "type": "string"
        },
        "cellNumber": {
          "type": "string"
        },
        "dateOfBirth": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "verified": {
          "type": "boolean"
        },
        "timestamp": {
          "type": "number",
          "format": "double"
        },
        "hasPassword": {
          "type": "boolean"
        },
        "verifiedEmail": {
          "type": "boolean"
        },
        "verifiedMobile": {
          "type": "boolean"
        },
        "merchantRole": {
          "type": "string"
        },
        "bankDetails": {
          "$ref": "#/definitions/modelBankInfo"
        },
        "merchantOnboarding": {
          "$ref": "#/definitions/modelMerchantOnboarding"
        },
        "bankValidationPendingReference": {
          "type": "string"
        },
        "oneTimePass": {
          "type": "string"
        },
        "passportState": {
          "type": "string"
        },
        "passportNumber": {
          "type": "string"
        },
        "profileImage": {
          "type": "string"
        },
        "merchantIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "merchants": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelMerchants"
          }
        },
        "isMerchantOwner": {
          "type": "boolean"
        },
        "twoFactorAuthenticationRequired": {
          "type": "boolean"
        }
      }
    },
    "modelUserResponseMany": {
      "type": "object",
      "properties": {
        "users": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/modelUserResponse"
          }
        }
      }
    },
    "modelValueEnabledPair": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "value": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "modelVerifyResponse": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        }
      }
    },
    "modelVoucherProvider": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "apiKey": {
          "type": "string"
        },
        "apiUrl": {
          "type": "string"
        }
      }
    },
    "modelVoucherSettings": {
      "type": "object",
      "properties": {
        "active": {
          "type": "boolean"
        },
        "minimumSavingGoalInCents": {
          "type": "integer",
          "format": "int32"
        },
        "maximumSavingGoalInCents": {
          "type": "integer",
          "format": "int32"
        },
        "rewardType": {
          "type": "string"
        },
        "rewardFlatAmountInCents": {
          "type": "integer",
          "format": "int32"
        },
        "rewardPercentage": {
          "type": "integer",
          "format": "int32"
        },
        "voucherProvider": {
          "type": "string"
        }
      }
    },
    "modelshopDirectorySettings": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        },
        "webAvailability": {
          "type": "string"
        },
        "webLogoImage": {
          "type": "string"
        },
        "webCategory": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "featured": {
          "type": "boolean"
        }
      }
    }
  },
  "securityDefinitions": {
    "apiKey": {
      "type": "apiKey",
      "name": "apikey",
      "in": "header"
    }
  },
  "security": [
    {
      "apiKey": [
        "read",
        "write"
      ]
    }
  ]
}