{
  "openapi": "3.0.4",
  "info": {
    "title": "Ecrypt.Gateway.Api",
    "description": "Ecrypt API",
    "contact": {
      "name": "Ecrypt",
      "url": "https://www.ecrypt.com/",
      "email": "Engineering@Ecrypt.com"
    },
    "version": "1.0.0.0"
  },
  "paths": {
    "/v1/customers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List Customers",
        "description": "Get a list of `ACTIVE` customers from your vault.  The default sort order is `CREATED DATE DESCENDING`.",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "description": "Page of results being requested.\r\n\r\nDefault: 1",
            "schema": {
              "maximum": 2147483647,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "Size",
            "in": "query",
            "description": "Size of the page of results being requested.\r\n\r\nDefault: 100",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create Customer",
        "description": "Create a new customer in your vault.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get Customer",
        "description": "Get the specified customer.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "summary": "Delete Customer",
        "description": "Delete the customer from your customer vault.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/subscriptions": {
      "get": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "List Customer Subscriptions",
        "description": "/// Get the customer and a list of subscriptions.  The default sort order is `created date descending`.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "post": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Create Customer Subscription",
        "description": "Create a customer subscription for a customer.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/subscriptions/{Subscription}": {
      "get": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Get Customer Subscription",
        "description": "Pull a Customer Subscription by customer id and customer subscription id",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          },
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt subscription identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "put": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Modify Customer Subscriptions Price",
        "description": "Update a customer subscription to pause it.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          },
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt Subscription identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionModifyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionModifyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionModifyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "delete": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Cancel Customer Subscription",
        "description": "Cancel a customer subscription",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          },
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt Subscription identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/subscriptions/{Subscription}/suspend": {
      "put": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Suspend Customer Subscription",
        "description": "Updates a customer subscription to pause it.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          },
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt Subscription identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/subscriptions/{Subscription}/resume": {
      "put": {
        "tags": [
          "Customers Subscription"
        ],
        "summary": "Resume Customer Subscriptions",
        "description": "Update a customer subscription to pause it.",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "`Customer` is the Ecrypt customer identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          },
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt Subscription identifier.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            },
            "example": "00000000-0000-0000-0000-000000000000"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/wallet": {
      "get": {
        "tags": [
          "Customers Wallet"
        ],
        "summary": "List Customer Wallet",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "Page of results being requested.\r\n\r\nDefault: 1",
            "schema": {
              "maximum": 2147483647,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "Size",
            "in": "query",
            "description": "Size of the page of results being requested.\r\n\r\nDefault: 100",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "post": {
        "tags": [
          "Customers Wallet"
        ],
        "summary": "Create Customer Wallet Payment Method",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/customers/{Customer}/wallet/{Wallet}": {
      "get": {
        "tags": [
          "Customers Wallet"
        ],
        "summary": "Get Customer Wallet Payment Method",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "Wallet",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "put": {
        "tags": [
          "Customers Wallet"
        ],
        "summary": "Update Customers default payment method",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "Wallet",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletModifyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletModifyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletModifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "delete": {
        "tags": [
          "Customers Wallet"
        ],
        "summary": "Delete Customer Wallet Payment Method",
        "parameters": [
          {
            "name": "Customer",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          },
          {
            "name": "Wallet",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/dynamiccheckout": {
      "post": {
        "tags": [
          "Dynamic Checkout"
        ],
        "summary": "Create Dynamic Checkout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "List Subscriptions",
        "description": "Get a list of `ACTIVE` subscription plans. The default sort order is `CREATED DATE DESCENDING`.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Create Subscription",
        "description": "Create a new merchant subscription template.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/subscriptions/{Subscription}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Get Subscription",
        "description": "Get the specified subscription.",
        "parameters": [
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt subscription identifier.",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "delete": {
        "tags": [
          "Subscriptions"
        ],
        "summary": "Delete Subscription Plan",
        "description": "Delete the subscription plan.  All customer subscriptions associated with this subscription plan must be canceled before you can delete the plan.",
        "parameters": [
          {
            "name": "Subscription",
            "in": "path",
            "description": "`Subscription` is the Ecrypt subscription identifier.",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/terminals": {
      "get": {
        "tags": [
          "Terminals"
        ],
        "summary": "List",
        "description": "Get a list of terminals.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "post": {
        "tags": [
          "Terminals"
        ],
        "summary": "Create",
        "description": "Create a new terminal.\r\n\r\nSample request:\r\n\r\nPOST v1/terminals/\r\n{\r\n    \"nickname\":\"NICKNAME\",\r\n    \"registration_code\":\"******\"\r\n}",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterResponseModel"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/terminals/{Terminal}": {
      "get": {
        "tags": [
          "Terminals"
        ],
        "summary": "Get",
        "description": "Get the specified terminal.",
        "parameters": [
          {
            "name": "Terminal",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string",
              "default": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalGetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      },
      "delete": {
        "tags": [
          "Terminals"
        ],
        "summary": "Delete",
        "description": "Delete the specified terminal.",
        "parameters": [
          {
            "name": "Terminal",
            "in": "path",
            "required": true,
            "schema": {
              "maxLength": 64,
              "minLength": 8,
              "pattern": "^[0-9A-Za-z-]*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/tokens": {
      "post": {
        "tags": [
          "Tokens"
        ],
        "summary": "Create Token",
        "description": "Payment Tokens support credit card's and ACH bank account information.  Tokens, can be for one time use, or stored and saved to a customers profile.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Tokens.TokenRequet"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Tokens.TokenRequet"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Tokens.TokenRequet"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Tokens.TokenResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/authorize": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Authorize",
        "description": "### DESCRIPTION ###\r\n***Supported Payment Methods***\r\n- `Credit Card`\r\n- `Cloud EMV`\r\n- `Check`\r\n- `Customer`\r\n- `Wallet`",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionAuthorizeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionAuthorizeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionAuthorizeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/capture": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Capture",
        "description": "`CAPTURE` a previous 'AUTHORIZTION'.  Capture up to the amount authorized\r\n            \r\n###Credit Card authorizations for merchants with tip adjust enabled can capture over the authorization amount.###",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCaptureRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCaptureRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCaptureRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/credit": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Credit",
        "description": "### DESCRIPTION ###\r\n***Supported Payment Methods***\r\n- `Credit Card`\r\n- `Cloud EMV`",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCreditRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCreditRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCreditRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/refund": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Refund",
        "description": "`REFUND` a settled transaction.  Refund amount cannot exceed settled amount.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionRefundRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionRefundRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionRefundRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/sale": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Sale",
        "description": "### DESCRIPTION ###\r\n***Supported Payment Methods***\r\n `Credit Card`\r\n -`Cloud EMV`\r\n `Cash`\r\n `ACH`",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionSaleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionSaleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionSaleRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/validate": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Validate",
        "description": "### DESCRIPTION ###\r\n***Supported Payment Methods***\r\n- `Credit Card`\r\n- `Cloud EMV`\r\n- `ACH`",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Validate.TransactionValidateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Validate.TransactionValidateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Validate.TransactionValidateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/void": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Void",
        "description": "`VOID` an unsettled transaction.",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionVoidRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionVoidRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionVoidRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "List Transactions",
        "description": "Get a list of `ACTIVE` customers from your vault.  The default sort order is `CREATED DATE DESCENDING`.",
        "parameters": [
          {
            "name": "Page",
            "in": "query",
            "description": "Page of results being requested.\r\n\r\nDefault: 1",
            "schema": {
              "maximum": 2147483647,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 1
            },
            "example": 1
          },
          {
            "name": "Size",
            "in": "query",
            "description": "Size of the page of results being requested.\r\n\r\nDefault: 100",
            "schema": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "example": 100
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.TransactionDtoPaginationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    },
    "/v1/transactions/{id}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Get a Transaction",
        "description": "",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Transactions.TransactionDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequest"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "429": {
            "description": "Too Many Requests"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Ecrypt.Gateway.Api.Core.Model.BadRequest": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.BadRequestError"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.BadRequestError": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Check": {
        "required": [
          "accountNumber",
          "routingNumber"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Name as it appears on the check.\r\n\r\nExample: John Doe",
            "nullable": true
          },
          "account_number": {
            "maxLength": 20,
            "minLength": 7,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Account Number as it appears on the check.\r\n\r\nExample: 123123123"
          },
          "routing_number": {
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Routing Number as it appears on the check.\r\n\r\nExample: 123123123"
          },
          "check_number": {
            "maxLength": 8,
            "minLength": 0,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Check Number\r\n\r\nExample: 100",
            "nullable": true
          },
          "account_type": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.AccountType"
          },
          "verification": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.CheckVerification"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.CheckVerification": {
        "type": "object",
        "properties": {
          "dob": {
            "maxLength": 14,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "Date of Birth\r\n\r\nFormat: MM/DD/YYYY\r\nExample: 01/17/2006 = January 17th 2006",
            "nullable": true
          },
          "ssn": {
            "maxLength": 14,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "Social Security Number\r\n\r\nFormat: DDD-DD-DDDD\r\nExample: 123-45-6789",
            "nullable": true
          },
          "drivers_license": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.CheckVerificationDriversLicense"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.CheckVerificationDriversLicense": {
        "type": "object",
        "properties": {
          "number": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "Number\r\n\r\nExample: A123456789",
            "nullable": true
          },
          "state": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "State\r\n\r\nFormat: CC\r\nExample: CA = California",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.Customer": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Ecrypt Customer Identifier",
            "default": "00000000-0000-0000-0000-000000000000"
          },
          "first_name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Customers first name.",
            "default": "John",
            "nullable": true
          },
          "last_name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Customers last name.",
            "default": "Doe",
            "nullable": true
          },
          "company": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Company associated with the customer.",
            "default": "US Oil Supply",
            "nullable": true
          },
          "merchant_identifier": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Merchants customer identifier. This field can be used as a reference back to your internal data system.",
            "default": "EID-987654-321",
            "nullable": true
          },
          "phone_number": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Customers phone number.  This could be a cellular, land line, or a fax number.",
            "default": "555-555-555",
            "nullable": true
          },
          "email_address": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Customers email address.",
            "default": "email@email.com",
            "nullable": true
          },
          "shipping_address": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the customer.  This is a key value pair.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateRequest": {
        "type": "object",
        "properties": {
          "first_name": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Customers first name.",
            "default": "John",
            "nullable": true
          },
          "last_name": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Customers last name.",
            "default": "Doe",
            "nullable": true
          },
          "company": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Company associated with the customer.",
            "default": "US Oil Supply",
            "nullable": true
          },
          "merchant_identifier": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Merchants customer identifier. This field can be used as a reference back to your internal data system.",
            "default": "EID-987654-321",
            "nullable": true
          },
          "phone_number": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Customers phone number.  This could be a cellular, land line, or a fax number.",
            "default": "555-555-555",
            "nullable": true
          },
          "email_address": {
            "maxLength": 100,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "description": "Customers email address.",
            "default": "email@email.com",
            "nullable": true
          },
          "shipping_address": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the customer.  This is a key value pair.",
            "nullable": true
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerCreateResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "customer": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.Customer"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerGetResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.Customer"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerListResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.Customer"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionBill": {
        "type": "object",
        "properties": {
          "due": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateRequest": {
        "required": [
          "payment"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "subscription_id": {
            "type": "string",
            "nullable": true
          },
          "start": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "skip_first_payment": {
            "type": "boolean"
          },
          "payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.Payment"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "customer_subscription": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionCreateRequest"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionGetResponse": {
        "type": "object",
        "properties": {
          "customer_subscription_id": {
            "type": "string",
            "nullable": true
          },
          "installments": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycle_unit": {
            "$ref": "#/components/schemas/Ecrypt.Platform.Domain.Enums.SUBSCRIPTION_CYCLE_TYPE"
          },
          "tax_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_amount": {
            "type": "number",
            "format": "double"
          },
          "surcharge_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total_amount": {
            "type": "number",
            "format": "double"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "bills": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionBill"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionListItem": {
        "type": "object",
        "properties": {
          "customer_subscription_id": {
            "type": "string",
            "nullable": true
          },
          "installments": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "cycle_unit": {
            "$ref": "#/components/schemas/Ecrypt.Platform.Domain.Enums.SUBSCRIPTION_CYCLE_TYPE"
          },
          "tax_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_amount": {
            "type": "number",
            "format": "double"
          },
          "surcharge_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total_amount": {
            "type": "number",
            "format": "double"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionListResponse": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "string",
            "nullable": true
          },
          "customer_subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionListItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerSubscriptionModifyRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.SubscriptionAmount"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWallet": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Ecrypt Customer Wallet Payment Method Identifier",
            "default": "00000000-0000-0000-0000-000000000000"
          },
          "network": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "account_number": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "expiry": {
            "type": "string",
            "nullable": true
          },
          "default": {
            "type": "boolean",
            "description": ""
          },
          "created": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateRequest": {
        "type": "object",
        "properties": {
          "token": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Token generated from the tokens endpoint",
            "default": "00000000-0000-0000-0000-000000000000",
            "nullable": true
          },
          "transaction_id": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Approved Transaction ID",
            "default": "0",
            "nullable": true
          },
          "default": {
            "type": "boolean",
            "description": "Make this the default payment method"
          },
          "billing_address": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletCreateResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "wallet": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWallet"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletGetResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "wallet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWallet"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletListResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "wallet": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWallet"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.CustomerWalletModifyRequest": {
        "type": "object",
        "properties": {
          "default": {
            "type": "boolean",
            "description": "Make this the default payment method",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.Payment": {
        "required": [
          "stored"
        ],
        "type": "object",
        "properties": {
          "stored": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Customers.Stored"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.Stored": {
        "required": [
          "wallet"
        ],
        "type": "object",
        "properties": {
          "wallet": {
            "minLength": 1,
            "type": "string"
          },
          "initiated_by": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Customers.SubscriptionAmount": {
        "required": [
          "total"
        ],
        "type": "object",
        "properties": {
          "tax": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "surcharge": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "subtotal": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Appearance": {
        "type": "object",
        "properties": {
          "invoice_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_button_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_accent_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_border_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_button_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_accent_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_border_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_button_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_button_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "alert_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "input_variant": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[A-Za-z]*$",
            "type": "string",
            "description": "Use `Variant Guide`",
            "nullable": true
          },
          "input_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "success_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_mobile_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "invoice_icon_theme": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[A-Za-z]*$",
            "type": "string",
            "description": "Use `Theme Guide`",
            "nullable": true
          },
          "invoice_mobile_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_button_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_button_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_icon_theme": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[A-Za-z]*$",
            "type": "string",
            "description": "Use `Theme Guide`",
            "nullable": true
          },
          "form_icon_theme": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[A-Za-z]*$",
            "type": "string",
            "description": "Use `Theme Guide`",
            "nullable": true
          },
          "form_input_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_input_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_input_text_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_input_background_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_input_border_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "mobile_accent_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "description": "Use `Color Guide`",
            "nullable": true
          },
          "form_title_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          },
          "form_label_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          },
          "mobile_title_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          },
          "mobile_label_color": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          },
          "tab_background_selected": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          },
          "tab_background_default": {
            "maxLength": 255,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z \\-\\.,%()\t#]*$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The Appearance object includes various properties that define the appearance of the invoice and form. Each property is optional and should be a string representing a color code or a theme.\r\n\r\n`Color Guide`\r\n\r\nExample: #000000\r\n*** Supported Formats ***\r\n- `Hexadecimal Format` #000000\r\n- `RGB Format` rgb(0, 0, 0)\r\n- `RGBA Format` rgba(0, 0, 0, 1)\r\n- `HSL Format` hsl(0, 0%, 0%)\r\n- `HSLA Format` hsla(0, 0%, 0%, 1)\r\n- `Named Colors` black\r\n            \r\n`Theme Guide`\r\n\r\nDefault: dark\r\n*** Supported Values ***\r\n- `dark`\r\n- `light`\r\n            \r\n`Variant Guide`\r\n\r\nDefault: standard\r\n*** Supported Values ***\r\n- `filled`\r\n- `outlined`\r\n- `standard`"
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Customer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The customer's name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The customer's email address.",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "The customer's street address line 1.",
            "nullable": true
          },
          "address2": {
            "type": "string",
            "description": "The customer's street address line 2.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "The customer's city.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "The customer's state.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "The customer's ZIP or postal code.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "The customer's country.",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The customer's country.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateRequest": {
        "required": [
          "items",
          "total"
        ],
        "type": "object",
        "properties": {
          "customer_info": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Customer"
          },
          "appearance": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Appearance"
          },
          "invoice_info": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Invoice"
          },
          "iframe": {
            "type": "boolean",
            "nullable": true
          },
          "one_time_payment": {
            "type": "boolean",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.CurrencyCode"
          },
          "tax": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "description": "",
            "format": "double",
            "nullable": true
          },
          "surcharge": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "description": "",
            "format": "double",
            "nullable": true
          },
          "discount": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "description": "",
            "format": "double",
            "nullable": true
          },
          "subtotal": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total": {
            "maximum": 999999999.99,
            "minimum": 0.01,
            "type": "number",
            "description": "Discount Percentage",
            "format": "double"
          },
          "collect_shipping": {
            "type": "boolean",
            "description": "",
            "nullable": true
          },
          "send_receipt": {
            "type": "boolean",
            "description": "\r\nDefault: false\r\n\r\nExample: false"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Item"
            },
            "description": "At least one is required"
          },
          "thank_you_url": {
            "type": "string",
            "description": "The Thank You Url to show when an order is placed at the end of the checkout flow.",
            "nullable": true
          },
          "subscription": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicSubscription"
          },
          "customer_defined_field": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "submit_button_text": {
            "type": "string",
            "nullable": true
          },
          "allow_ach": {
            "type": "boolean",
            "nullable": true
          },
          "three_ds_enabled": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicCheckoutCreateResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.DynamicSubscription": {
        "type": "object",
        "properties": {
          "billing_cycle": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.SubscriptionCycleType"
          },
          "billing_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "label": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Invoice": {
        "required": [
          "dueDate",
          "invoiceDate",
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "maxLength": 20,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "The invoice number from the merchants data system."
          },
          "invoice_date": {
            "maxLength": 14,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.\\/]*$",
            "type": "string",
            "description": "The date the invoice was issued.\r\n\r\nExample: 02/01/2025\r\nExample: 02-01-2025\r\nExample: 2.1.2025\r\nExample: Jan 1 2030\r\nExample: Jan 1 2030"
          },
          "due_date": {
            "maxLength": 14,
            "minLength": 0,
            "type": "string",
            "description": "The due date for payment.\r\n\r\nExample: 02/01/2025 = January 1 2030\r\nExample: 02/01/2025 = January 1 2030\r\nExample: 02/01/2025 = January 1 2030"
          }
        },
        "additionalProperties": false,
        "description": "Invoice details\r\n\r\nIf `null` invoice information will not display."
      },
      "Ecrypt.Gateway.Api.Core.Model.DynamicCheckout.Item": {
        "required": [
          "name",
          "price",
          "quantity"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 1000,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string"
          },
          "price": {
            "maximum": 999999999.99,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "maxLength": 2000,
            "minLength": 0,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Pagination": {
        "type": "object",
        "properties": {
          "total_records": {
            "type": "integer",
            "description": "Total number of records.",
            "format": "int32"
          },
          "current_page": {
            "type": "integer",
            "description": "Current page number.",
            "format": "int32"
          },
          "total_pages": {
            "type": "integer",
            "description": "Total number of pages.",
            "format": "int32"
          },
          "page_size": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": ""
      },
      "Ecrypt.Gateway.Api.Core.Model.ResponseBaseError": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.Subscription": {
        "required": [
          "amount",
          "cycle",
          "id",
          "label"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string"
          },
          "label": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string"
          },
          "cycle": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCycle"
          },
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Amount"
          },
          "installments": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Number of installments to run at the specified unit, and interval",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateRequest": {
        "required": [
          "amount",
          "cycle",
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "maxLength": 100,
            "minLength": 1,
            "pattern": "^[0-9A-Za-z _\\-\\.,`'()@#!?\\/\\\\:;|+=@%&]*$",
            "type": "string",
            "default": "Merchant Subscription 0001"
          },
          "cycle": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCycle"
          },
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Amount"
          },
          "installments": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "description": "Number of installments to run at the specified unit, and interval",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCreateResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.Subscription"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionCycle": {
        "type": "object",
        "properties": {
          "unit": {
            "type": "string",
            "description": "Unit for cycle\r\n***Supported Units***\r\n- `day`\r\n- `week`\r\n- `month`\r\n- `year`",
            "default": "month",
            "nullable": true
          },
          "interval": {
            "type": "integer",
            "description": "Interval for cycle\r\n***Supported Units***\r\n- `day, 1-365, 1 == Daily, 2 = every second day, 7 == once a week`\r\n- `week, 1-52, 1 == Every Week, 2 = every other week, will default to charge on Monday if no other Day of Cycle is not specified`\r\n- `Month, 1-12, 1== every month, 2 = every other month, will default to the day the subscription became active if day of cycle is not specified`\r\n- `Year, 1-500, 1== every year`",
            "format": "int32",
            "default": 1
          },
          "day_of_cycle": {
            "type": "integer",
            "description": "Day of cycle for the specified unit\r\n***Supported Units***\r\n- `day, not supported`\r\n- `week, 1-7, 1= monday 7 = sunday`\r\n- `month 1-31, if 31 is specified it will default to the last day of the month for all months with less that 31 days`\r\n- `year 1-365, any day in the year`",
            "format": "int32",
            "default": 1
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionGetResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.Subscription"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Subscriptions.SubscriptionListResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Subscriptions.Subscription"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.PaymentTerminal": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Payment Terminal Identifier, this can be found on your Ecrypt Dashboard under Setting/Device Management.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000"
          },
          "external_identifier": {
            "type": "string",
            "description": "Processor Terminal Identifier, this is used by the processor.\r\n\r\nINTERNAL USE ONLY",
            "nullable": true
          },
          "prompt_tip": {
            "type": "boolean",
            "description": "Prompt for Tip will display tip at time of sale options.  If your account does not support tip at time of sale this option will be ignored.",
            "nullable": true
          },
          "tip_amounts": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "Tip amounts in dollar format.  Terminals can support 3 or 4 tip amounts depending on the terminal.  Any extra items will be ignored.  This is required if you set Prompt for Tip to true.\r\n\r\nExample: [28.23, 33.88, 37.65, 41.41]",
            "nullable": true
          },
          "prompt_cvv": {
            "type": "boolean",
            "description": "Prompt for CVV/CVC will attempt to override the card verification requirement and force CVV/CVC input.",
            "nullable": true
          },
          "prompt_postal_code": {
            "type": "boolean",
            "description": "Prompt for Postal Code will allow the customer to enter their billing postal code.",
            "nullable": true
          },
          "prompt_amount_confirmation": {
            "type": "boolean",
            "description": "Prompt for Amount Confirmation will force the customer to approve the transaction amount.",
            "nullable": true
          },
          "prompt_signature": {
            "type": "boolean",
            "description": "Prompt for Signature will show the signature screen on compatible terminals.",
            "nullable": true
          },
          "key_card": {
            "type": "boolean",
            "description": "Prompt Key Card will allow you to manually enter the card details.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalGetResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "terminals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalViewModel"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModel": {
        "required": [
          "nickname",
          "registrationCode"
        ],
        "type": "object",
        "properties": {
          "registration_code": {
            "minLength": 1,
            "type": "string",
            "description": "Registration code is listed on your powered up terminal.  This is a 6 character code."
          },
          "device_id": {
            "type": "string",
            "description": "Device identifier is on the back of your terminal.  This is an 8 character code. Required for Canadian processing.",
            "nullable": true
          },
          "nickname": {
            "maxLength": 20,
            "minLength": 1,
            "pattern": "^[0-9A-Za-z _-]*$",
            "type": "string",
            "description": "Terminal nickname will be displayed on the terminal, and in the console."
          },
          "configuration": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModelConfiguration"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterRequestModelConfiguration": {
        "type": "object",
        "properties": {
          "prompt_tip": {
            "type": "boolean",
            "description": "Prompt for Tip will display tip at time of sale options.  If your account does not support tip at time of sale this option will be ignored.",
            "nullable": true
          },
          "tip_amounts": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            },
            "description": "Tip amounts in dollar format.  Terminals can support 3 or 4 tip amounts depending on the terminal.  Any extra items will be ignored.  This is required if you set Prompt for Tip to true.\r\n\r\nExample: [28.23, 33.88, 37.65, 41.41]",
            "nullable": true
          },
          "prompt_cvv": {
            "type": "boolean",
            "description": "Prompt for CVV/CVC will attempt to override the card verification requirement and force CVV/CVC input.",
            "nullable": true
          },
          "prompt_postal_code": {
            "type": "boolean",
            "description": "Prompt for Postal Code will allow the customer to enter their billing postal code.",
            "nullable": true
          },
          "prompt_amount_confirmation": {
            "type": "boolean",
            "description": "Prompt for Amount Confirmation will force the customer to approve the transaction amount.",
            "nullable": true
          },
          "prompt_signature": {
            "type": "boolean",
            "description": "Prompt for Signature will show the signature screen on compatible terminals.",
            "nullable": true
          },
          "key_card": {
            "type": "boolean",
            "description": "Prompt Key Card will allow you to manually enter the card details.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalRegisterResponseModel": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "terminals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalViewModel"
            },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Terminals.TerminalViewModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "make": {
            "type": "string",
            "nullable": true
          },
          "model": {
            "type": "string",
            "nullable": true
          },
          "serial_number": {
            "type": "string",
            "nullable": true
          },
          "nickname": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Tokens.TokenRequet": {
        "type": "object",
        "properties": {
          "credit_card": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.CreditCard"
          },
          "check": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Check"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.TransactionDtoPaginationResponse": {
        "type": "object",
        "properties": {
          "pagination": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Pagination"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Transactions.TransactionDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Address": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postal_code": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Amount": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.CurrencyCode"
          },
          "value": {
            "maximum": 999999999.99,
            "minimum": 0.01,
            "type": "number",
            "description": "Values is the full amount to be processed.  The value is inclusive of all tax, discounts, shipping, fees ect.\r\n\r\nExample: 127.55",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.AvsResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.CvvResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.INITIAL": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Initial Transaction type\r\n\r\nExample: RECURRING\r\n*** Supported Values ***\r\n- `[NULL]`, \r\n- `RECURRING`\r\n- `INSTALLMENT`",
        "format": "int32"
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.INITIATED_BY": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Initiated By\r\n\r\nExample: MERCHANT\r\n*** Supported Values ***\r\n- `MERCHANT`, recurring payments, installments, or other senarios where the merchant start then transaction\r\n- `CUSTOMER`, customer started the transaction",
        "format": "int32"
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Line": {
        "type": "object",
        "properties": {
          "product_code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "commodity_code": {
            "type": "string",
            "nullable": true
          },
          "unit_of_measure": {
            "type": "string",
            "nullable": true
          },
          "unit_cost": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "total": {
            "type": "number",
            "format": "double"
          },
          "tax": {
            "type": "number",
            "format": "double"
          },
          "tax_rate": {
            "type": "number",
            "format": "double"
          },
          "discount": {
            "type": "number",
            "format": "double"
          },
          "discount_rate": {
            "type": "number",
            "format": "double"
          },
          "tax_type": {
            "type": "string",
            "nullable": true
          },
          "alternate_tax_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Order": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "readOnly": true
          },
          "customer_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "readOnly": true
          },
          "customer_public_identifier": {
            "type": "string",
            "nullable": true
          },
          "reference_object": {
            "type": "string",
            "nullable": true
          },
          "reference_object_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bill_to": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          },
          "ship_to": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Address"
          },
          "discount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "surcharge": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "shipping": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "tip": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "tax": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "total": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Line"
            },
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Payment": {
        "type": "object",
        "properties": {
          "token": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Token ID generated from the iframe or the tokens endpoint.\r\n\r\nExample: 00000000-0000-0000-0000-000000000000",
            "nullable": true
          },
          "stored": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Stored"
          },
          "terminal": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Terminals.PaymentTerminal"
          },
          "credit_card": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.CreditCard"
          },
          "check": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Check"
          },
          "cash": {
            "type": "boolean",
            "description": "",
            "nullable": true
          },
          "credit_card_encrypted": {
            "type": "string",
            "nullable": true
          },
          "google_pay_payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.GooglePaymentRequest"
          },
          "apple_pay_payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentRequest"
          },
          "method": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Payment requires that you submit only one of the below options:\r\n- `Token`\r\n- `Stored`\r\n- `Terminal`\r\n- `Check`\r\n- `Cash`"
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Stored": {
        "type": "object",
        "properties": {
          "customer": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Ecrypt Customer Identifier, this will use the customers default payment method on file.  This can be found under Customer Vault/Api User Id",
            "nullable": true
          },
          "wallet": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Ecrypt Customer Wallet Identifier, this will use the specified payment method.",
            "nullable": true
          },
          "initiated_by": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.INITIATED_BY"
          },
          "initial": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.INITIAL"
          },
          "installment": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "initial_transaction_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionAuthorizeRequest": {
        "required": [
          "amount",
          "payment"
        ],
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Payment"
          },
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Amount"
          },
          "order": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Order"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCaptureRequest": {
        "required": [
          "amount",
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "minLength": 1,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "transactionid\r\nOriginal payment gateway transaction id"
          },
          "amount": {
            "maximum": 999999999.99,
            "minimum": 0.01,
            "type": "number",
            "description": "amount\r\nTotal amount to be settled. This amount must be equal to or less than the original authorized amount.\r\nFormat: x.xx",
            "format": "double"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionCreditRequest": {
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Payment"
          },
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Amount"
          },
          "order": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Order"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionRefundRequest": {
        "required": [
          "amount",
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "minLength": 1,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Transaction Id to issue the refund against."
          },
          "amount": {
            "maximum": 999999999.99,
            "minimum": 0.01,
            "type": "number",
            "description": "Amount to refund.  Cannot exceed the original transaction amount.",
            "format": "double"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionResponse": {
        "required": [
          "requestId"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "type": "string",
            "nullable": true
          },
          "auth_code": {
            "type": "string",
            "nullable": true
          },
          "response_code": {
            "type": "string",
            "nullable": true
          },
          "response_text": {
            "type": "string",
            "nullable": true
          },
          "latency": {
            "type": "integer",
            "format": "int32"
          },
          "avs": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.AvsResponse"
          },
          "cvv": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.CvvResponse"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionSaleRequest": {
        "required": [
          "amount",
          "payment"
        ],
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Payment"
          },
          "amount": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Amount"
          },
          "order": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Order"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "customer_subscription_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.TransactionVoidRequest": {
        "required": [
          "transactionId"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "minLength": 1,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Transaction Id to void"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.Transactions.Validate.TransactionValidateRequest": {
        "required": [
          "payment"
        ],
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.Transactions.Payment"
          },
          "initiated_by_user_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentData": {
        "type": "object",
        "properties": {
          "data": {
            "type": "string",
            "nullable": true
          },
          "signature": {
            "type": "string",
            "nullable": true
          },
          "header": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentHeader"
          },
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentHeader": {
        "type": "object",
        "properties": {
          "ephemeral_public_key": {
            "type": "string",
            "nullable": true
          },
          "public_key_hash": {
            "type": "string",
            "nullable": true
          },
          "transaction_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentMethod": {
        "type": "object",
        "properties": {
          "display_name": {
            "type": "string",
            "nullable": true
          },
          "network": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentRequest": {
        "type": "object",
        "properties": {
          "payment_data": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentData"
          },
          "payment_method": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.ApplePayPaymentMethod"
          },
          "transaction_identifier": {
            "type": "string",
            "nullable": true
          },
          "name_on_card": {
            "type": "string",
            "nullable": true
          },
          "postal_code": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.CreditCard": {
        "required": [
          "accountNumber",
          "expires"
        ],
        "type": "object",
        "properties": {
          "name_on_card": {
            "pattern": "^[0-9A-Za-z `',;-]*$",
            "type": "string",
            "description": "Name as it appears on the credit card.",
            "default": "John Doe",
            "nullable": true
          },
          "account_number": {
            "maxLength": 20,
            "minLength": 13,
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "Credit Card primary account number(PAN)",
            "default": "4111111111111111"
          },
          "expires": {
            "maxLength": 7,
            "minLength": 4,
            "pattern": "^[0-9 /]*$",
            "type": "string",
            "description": "Credit Card Expiry\r\n\r\nFormat: MMYY\r\nExample: 0135 = January 2035",
            "default": "0135"
          },
          "verification_value": {
            "pattern": "^[0-9]*$",
            "type": "string",
            "description": "3 or 4 digit card verification value(CVV, CVC).",
            "default": "000",
            "nullable": true
          },
          "postal_code": {
            "pattern": "^[0-9A-Za-z -]*$",
            "type": "string",
            "description": "Billing address postal code.",
            "default": "90210",
            "nullable": true
          },
          "transaction_id": {
            "type": "string",
            "description": "Processor transaction id.  This is used for processors that support re-charge an existing transaction.  INTERNAL USE ONLY",
            "nullable": true
          },
          "cavv": {
            "type": "string",
            "nullable": true
          },
          "eci": {
            "type": "string",
            "nullable": true
          },
          "e_commerce_indicator": {
            "type": "string",
            "nullable": true
          },
          "eci_raw": {
            "type": "string",
            "nullable": true
          },
          "xid": {
            "type": "string",
            "nullable": true
          },
          "aav": {
            "type": "string",
            "nullable": true
          },
          "three_d_secure_version": {
            "type": "string",
            "nullable": true
          },
          "directory_server_id": {
            "type": "string",
            "nullable": true
          },
          "ucaf_collection_indicator": {
            "type": "string",
            "nullable": true
          },
          "digital_payment_cryptogram": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.AccountType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Type of account\r\n\r\nExample: CHECKING\r\n*** Supported Values ***\r\n- `CHECKING`\r\n- `SAVINGS`",
        "format": "int32"
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.CurrencyCode": {
        "enum": [
          8,
          12,
          32,
          36,
          44,
          48,
          50,
          51,
          52,
          60,
          64,
          68,
          72,
          84,
          90,
          96,
          104,
          108,
          116,
          124,
          132,
          136,
          144,
          152,
          156,
          170,
          174,
          188,
          192,
          203,
          208,
          214,
          222,
          230,
          232,
          238,
          242,
          262,
          270,
          292,
          320,
          324,
          328,
          332,
          340,
          344,
          348,
          352,
          356,
          360,
          364,
          368,
          376,
          388,
          392,
          398,
          400,
          404,
          408,
          410,
          414,
          417,
          418,
          422,
          426,
          430,
          434,
          446,
          454,
          458,
          462,
          480,
          484,
          496,
          498,
          504,
          512,
          516,
          524,
          532,
          533,
          548,
          554,
          558,
          566,
          578,
          586,
          590,
          598,
          600,
          604,
          608,
          634,
          643,
          646,
          654,
          682,
          690,
          702,
          704,
          706,
          710,
          728,
          748,
          752,
          756,
          760,
          764,
          776,
          780,
          784,
          788,
          800,
          807,
          818,
          826,
          834,
          840,
          858,
          860,
          882,
          886,
          901,
          925,
          926,
          929,
          930,
          931,
          932,
          933,
          934,
          936,
          937,
          938,
          940,
          941,
          943,
          944,
          946,
          947,
          948,
          949,
          950,
          951,
          952,
          953,
          960,
          965,
          967,
          968,
          969,
          970,
          971,
          972,
          973,
          975,
          976,
          977,
          978,
          979,
          980,
          981,
          984,
          985,
          986,
          990,
          994,
          997
        ],
        "type": "integer",
        "format": "int32"
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Enums.SubscriptionCycleType": {
        "enum": [
          10,
          20,
          30,
          50,
          52,
          70,
          71,
          73,
          79,
          90,
          95
        ],
        "type": "integer",
        "description": "\r\nSubscription cycle intervals\r\n\r\nDAILY = 10 Cycle runs everyday</br>\r\n\r\nWEEKLY = 20 Run the same day every week</br>\r\n\r\nBI_WEEKLY = 30 Run on Monday and Wednesday in the Merchant Timezone</br>\r\n\r\nSEMI_MONTHLY_FIRST_AND_FIFTEENTH = 50 Run Every 1st and 15th</br>\r\n\r\nSEMI_MONTHLY_FIFTEENTH_AND_LAST = 52 Run Every 15th and Last Day of the month</br>\r\n\r\nMONTHLY = 70 Run the same day every month</br>\r\n\r\nMONTHLY_FIRST = 71 Run on the first of the month</br>\r\n\r\nMONTHLY_LAST = 79 Run on the last day of the month</br>\r\n\r\nQUARTERLY = 73 Run the same day of month every 3 months, use Monthly logic for validation</br>\r\n\r\nSEMI_ANNUALLY = 90 Run every 6 months</br>\r\n\r\nANNUALLY = 95 Run the same day of the year, use Monthly logic for validation</br>",
        "format": "int32"
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.GooglePaymentRequest": {
        "type": "object",
        "properties": {
          "signature": {
            "type": "string",
            "nullable": true
          },
          "intermediate_signing_key": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.IntermediateSigningKey"
          },
          "protocol_version": {
            "type": "string",
            "nullable": true
          },
          "signed_message": {
            "type": "string",
            "nullable": true
          },
          "postal_code": {
            "type": "string",
            "nullable": true
          },
          "name_on_card": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.IntermediateSigningKey": {
        "type": "object",
        "properties": {
          "signed_key": {
            "type": "string",
            "nullable": true
          },
          "signatures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Tokens.TokenMetadata": {
        "type": "object",
        "properties": {
          "credit_card_number": {
            "maxLength": 20,
            "minLength": 13,
            "pattern": "^[0-9/*]*$",
            "type": "string",
            "description": " Credit Card number masked\r\n\r\nExample: 4***********1111",
            "nullable": true
          },
          "credit_card_expires": {
            "maxLength": 4,
            "minLength": 13,
            "pattern": "^[0-9/*]*$",
            "type": "string",
            "description": " Credit Card Expires\r\n\r\nExample: 0935",
            "nullable": true
          },
          "credit_card_network": {
            "maxLength": 20,
            "minLength": 0,
            "pattern": "^[A-Za-z -]*$",
            "type": "string",
            "description": "Credit Card network\r\n\r\nExamples:\r\n- `american express`\r\n- `discover card`\r\n- `mastercard`\r\n- `visa`",
            "default": "visa",
            "nullable": true
          },
          "credit_card_type": {
            "maxLength": 20,
            "minLength": 0,
            "pattern": "^[A-Za-z -]*$",
            "type": "string",
            "description": "Credit Card type\r\n\r\nExamples:\r\n- `credit`\r\n- `debit`\r\n- `pre-paid`",
            "default": "credit",
            "nullable": true
          },
          "account_number": {
            "maxLength": 20,
            "minLength": 8,
            "pattern": "^[0-9/*]*$",
            "type": "string",
            "description": "Non-Credit card Account Number masked\r\n\r\nExample: 1*****1111",
            "default": "1*****1111",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Tokens.TokenResponse": {
        "required": [
          "requestId",
          "token"
        ],
        "type": "object",
        "properties": {
          "token": {
            "maxLength": 64,
            "minLength": 8,
            "pattern": "^[0-9A-Za-z-]*$",
            "type": "string",
            "description": "Token Identifier\r\n\r\nExample: 00000000-0000-0000-0000-000000000000"
          },
          "metadata": {
            "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Tokens.TokenMetadata"
          },
          "request_id": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "default": "000000000000000000000"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.ResponseBaseError"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Transactions.TransactionDto": {
        "type": "object",
        "properties": {
          "transaction_id": {
            "type": "integer",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "tender": {
            "type": "string",
            "nullable": true
          },
          "payment_name": {
            "type": "string",
            "nullable": true
          },
          "payment_network": {
            "type": "string",
            "nullable": true
          },
          "payment_account": {
            "type": "string",
            "nullable": true
          },
          "payment_account_expiry": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "authorization_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "captured_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "gratuity_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "surcharge_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "settlement_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "voided_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "reference_transaction_id": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "approval_code": {
            "type": "string",
            "nullable": true
          },
          "avs_code": {
            "type": "string",
            "nullable": true
          },
          "cvv_code": {
            "type": "string",
            "nullable": true
          },
          "enhanced": {
            "type": "boolean",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "description": "Create date time represented in UTC.",
            "format": "date-time"
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Ecrypt.Gateway.Api.Core.Model.WebAPI.Transactions.TransactionEventDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Gateway.Api.Core.Model.WebAPI.Transactions.TransactionEventDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "Ecrypt.Platform.Domain.Enums.SUBSCRIPTION_CYCLE_TYPE": {
        "enum": [
          10,
          20,
          30,
          50,
          52,
          70,
          71,
          73,
          79,
          90,
          95
        ],
        "type": "integer",
        "format": "int32"
      }
    }
  }
}