{
  "openapi": "3.0.1",
  "info": {
    "title": "Gateway Api",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://gateway.sand.us.zip.co",
      "description": "Sandbox"
    }
  ],
  "paths": {
    "/global/v1/charges": {
      "post": {
        "tags": [
          "Charges"
        ],
        "summary": "Creates or captures a charge on an existing checkout.\r\nIdempotency-Key header is optional; when omitted, the request is not idempotent and duplicate submissions may result in multiple charges.",
        "operationId": "CreateCharge",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CreateChargeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/charges/{chargeId}/capture": {
      "post": {
        "tags": [
          "Charges"
        ],
        "summary": "Captures an existing charge. Idempotency-Key header is optional; when omitted, the request is not idempotent.",
        "operationId": "CaptureCharge",
        "parameters": [
          {
            "name": "chargeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CaptureChargeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/charges/{chargeId}": {
      "get": {
        "tags": [
          "Charges"
        ],
        "summary": "Retrieves a charge by ID.",
        "operationId": "GetCharge",
        "parameters": [
          {
            "name": "chargeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.GetChargeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/charges/{chargeId}/refund": {
      "post": {
        "tags": [
          "Charges"
        ],
        "summary": "Refunds an existing charge. Idempotency-Key header is optional; when omitted, the request is not idempotent.",
        "operationId": "RefundCharge",
        "parameters": [
          {
            "name": "chargeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.RefundChargeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/charges/{chargeId}/cancel": {
      "post": {
        "tags": [
          "Charges"
        ],
        "summary": "Voids (cancels) an existing charge. Idempotency-Key header is optional; when omitted, the request is not idempotent.",
        "operationId": "VoidCharge",
        "parameters": [
          {
            "name": "chargeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.VoidChargeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/checkoutanywhere/testing/orders/authorize": {
      "post": {
        "tags": [
          "CheckoutAnywhereOrdersTesting"
        ],
        "operationId": "AuthorizeCheckoutAnywhereTestOrder",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Results.AuthorizeCheckoutAnywhereResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/internal/checkout": {
      "post": {
        "tags": [
          "CheckoutInternal"
        ],
        "summary": "Completes the current checkout for the user. Returns an optional redirect url.",
        "operationId": "CompleteCheckout",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Command"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Command"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Command"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/internal/checkout/virtual/complete": {
      "post": {
        "tags": [
          "CheckoutInternal"
        ],
        "summary": "Only used for the MQ flow as of now.\r\nCreates a virtual purchase and sends an encrypted + signed token to the redirect confirm url.",
        "operationId": "CompleteVirtualPurchaseRequest",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteVirtualPurchase"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteVirtualPurchase"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteVirtualPurchase"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Commands.CompleteVirtualPurchase"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Results.CompleteVirtualPurchaseResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Results.CompleteVirtualPurchaseResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Results.CompleteVirtualPurchaseResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/checkouts": {
      "post": {
        "tags": [
          "Checkouts"
        ],
        "summary": "Creates a checkout session for a merchant.",
        "operationId": "CreateCheckout",
        "parameters": [
          {
            "name": "Referer",
            "in": "header",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/checkouts/{checkoutId}": {
      "get": {
        "tags": [
          "Checkouts"
        ],
        "summary": "Retrieves a checkout session by ID.",
        "operationId": "GetCheckout",
        "parameters": [
          {
            "name": "checkoutId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.GetCheckoutResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Lists disputes for a merchant, with optional filters for date range, status, and cursor-based pagination.",
        "operationId": "ListDisputes",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "StartingAfter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "OpenedAfter",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OpenedBefore",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Payment",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.ListDisputesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes/{disputeId}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Retrieves a single dispute by its identifier.",
        "operationId": "GetDispute",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.GlobalDisputeDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes/{disputeId}/accept": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Accepts a dispute, transitioning it to a lost status.",
        "operationId": "AcceptDispute",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success"
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes/{disputeId}/evidence": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Submits evidence for a dispute to support the merchant's case.",
        "operationId": "SubmitEvidence",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.SubmitEvidenceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes/{disputeId}/files/{category}": {
      "post": {
        "tags": [
          "Disputes"
        ],
        "summary": "Uploads an evidence file to a dispute from a blob URL.",
        "operationId": "UploadFile",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.GlobalGateway.Commands.UploadDisputeFile+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.UploadFileResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Disputes"
        ],
        "summary": "Deletes an evidence file from a dispute by category.",
        "operationId": "DeleteFile",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/global/v1/disputes/{disputeId}/files/{categoryOrFileId}": {
      "get": {
        "tags": [
          "Disputes"
        ],
        "summary": "Downloads an evidence file by category or file ID.",
        "operationId": "DownloadFile",
        "parameters": [
          {
            "name": "disputeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "categoryOrFileId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "merchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/edge/orders/authorize-redirect": {
      "get": {
        "tags": [
          "EdgeOrders"
        ],
        "operationId": "AuthorizeRedirect",
        "parameters": [
          {
            "name": "OrderId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantReference",
            "in": "query",
            "description": "Edge doesn't pass in this value but we should set it.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SkipEstimate",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Amount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "RedirectCancelUrl",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RedirectConfirmUrl",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PublicKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TestData.BypassOTPEmail",
            "in": "query",
            "description": "This to bypass OTP by using the auth-mock token.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CanLink",
            "in": "query",
            "description": "If this property is set to true, Zip will return a refreshToken/expiresIn value to the merchant during the callback\r\nUsed by Edge for now.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RememberMeKey",
            "in": "query",
            "description": "Gets or sets the RememberMeKey for fetching a RefreshToken from FEO.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/internal/pre-qualifications": {
      "get": {
        "tags": [
          "InternalPreQualifications"
        ],
        "summary": "Retrieves the latest pre-qualification for the customer.",
        "operationId": "GetPreQualification",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the Id of the merchant.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Queries.GetPreQualification+Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Queries.GetPreQualification+Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Queries.GetPreQualification+Result"
                }
              }
            }
          }
        }
      }
    },
    "/internal/pre-qualifications/link": {
      "get": {
        "tags": [
          "InternalPreQualifications"
        ],
        "summary": "Retrieves the latest pre-qualification for the customer.",
        "operationId": "LinkOrderWithPreQualification",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the Id of the merchant.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the Id of the order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "OrderCreatedDateTime",
            "in": "query",
            "description": "When the order was created (Classic) or when the PL was created (Virtual)",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "ProductType",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.ProductType"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.LinkPreQualificationResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.LinkPreQualificationResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.LinkPreQualificationResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/configuration/{merchantId}": {
      "get": {
        "tags": [
          "MerchantConfiguration"
        ],
        "summary": "Allows a merchant to see their checkout configuration",
        "operationId": "GetConfiguration",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/configuration/validate": {
      "get": {
        "tags": [
          "MerchantConfiguration"
        ],
        "summary": "Takes a merchant's id and its signed hash and returns the merchant id if valid for GET requests",
        "operationId": "ValidateConfigurationGet",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      },
      "post": {
        "tags": [
          "MerchantConfiguration"
        ],
        "summary": "Takes a merchant's id and its signed hash and returns the merchant id if valid for POST requests",
        "operationId": "ValidateConfigurationPost",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/merchant-disputes/search": {
      "get": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Search Merchant Disputes.",
        "operationId": "SearchMerchantDisputes",
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "description": "The Merchant's ID",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "StartDate",
            "in": "query",
            "description": "Return disputes after the given date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "EndDate",
            "in": "query",
            "description": "Return disputes before the given date.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Status",
            "in": "query",
            "description": "If set, filter disputes by their status. e.g.\r\n- WarningNeedsResponse,\r\n- WarningUnderReview,\r\n- WarningClosed,\r\n- NeedsResponse,\r\n- UnderReview,\r\n- ChargeRefunded,\r\n- Won,\r\n- Lost,",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DateColumnFilter",
            "in": "query",
            "description": "Date Filter - default is dispute date.\r\n- DisputeDate\r\n- RespondByDate\r\n- SettledDate",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of results per page.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "The page number.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "An ordering specification.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.SearchDisputeResult"
                }
              }
            }
          }
        }
      }
    },
    "/merchant-disputes": {
      "get": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Get Merchant Dispute by id.",
        "operationId": "GetMerchantDisputeById",
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "description": "The Merchant's ID",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "DisputeId",
            "in": "query",
            "description": "The dispute id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          }
        }
      }
    },
    "/merchant-disputes/close": {
      "post": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Accept Losing the dispute and Close the dispute",
        "operationId": "AcceptDispute",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "description": "Dispute close request details",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.AcceptDispute+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/merchant-disputes/submit-evidence": {
      "post": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Merchant submit all evidence for the dispute. Submissions are final.",
        "operationId": "SubmitDisputeEvidence",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "description": "Merchant and Dispute information and submitted evidence.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.SubmitDisputeEvidence+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/merchant-disputes/file": {
      "post": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Upload an evidence file using a blob.\r\nNote all blobs provided must not assume containers or implicit security.\r\n(e.g. for Azure blobs, these have SAS tokens if required)",
        "operationId": "UploadDisputeEvidenceFile",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "description": "A blob to be submitted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.MerchantDisputesController+UploadDisputeEvidenceFileRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.MerchantDisputesController+UploadDisputeEvidenceFileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.MerchantDisputesController+UploadDisputeEvidenceFileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.MerchantDisputesController+UploadDisputeEvidenceFileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Delete dispute evidence file.",
        "operationId": "DeleteDisputeEvidenceFile",
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "description": "The Merchant's ID",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "DisputeId",
            "in": "query",
            "description": "The dispute id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Receipt,\r\nRefundPolicy,\r\nServiceDocumentation,\r\nShippingDocumentation,\r\nCancellationPolicy,\r\nCustomerCommunication,\r\nCustomerSignature,\r\nDuplicateChargeDocumentation,\r\nUncategorizedFile,",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Downliad dispute evidence file by category or file id.",
        "operationId": "DownloadDisputeEvidenceFile",
        "parameters": [
          {
            "name": "merchantId",
            "in": "query",
            "description": "The Merchant's ID",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "DisputeId",
            "in": "query",
            "description": "The dispute id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Category",
            "in": "query",
            "description": "Receipt,\r\nRefundPolicy,\r\nServiceDocumentation,\r\nShippingDocumentation,\r\nCancellationPolicy,\r\nCustomerCommunication,\r\nCustomerSignature,\r\nDuplicateChargeDocumentation,\r\nUncategorizedFile,",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "FileId",
            "in": "query",
            "description": "If specified, we are removing a specific file. Otherwise use QuadPay.Gateway.MerchantDisputes.Queries.DownloadDisputeEvidenceFile.Query.Category.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/merchant-disputes/file/bulk": {
      "post": {
        "tags": [
          "MerchantDisputes"
        ],
        "summary": "Upload multiple evidence files using SAS URLs.\r\nNote all blobs provided must not assume containers or implicit security.\r\n(e.g. for Azure blobs, these have SAS tokens if required)",
        "operationId": "UploadDisputeEvidenceFiles",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "description": "A blob to be submitted",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeResult"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/payments/{merchantId}/json": {
      "get": {
        "tags": [
          "MerchantPayments"
        ],
        "summary": "An abbreviated list of payments in JSON format",
        "operationId": "GetPaymentsExportJson",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "The Merchant's ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MinimumCreateDateTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumCreateDateTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Payments.Queries.GetMerchantPaymentsExport+Query`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System.IO.Stream"
                }
              }
            }
          }
        }
      }
    },
    "/payments/{merchantId}/csv": {
      "get": {
        "tags": [
          "MerchantPayments"
        ],
        "summary": "An abbreviated list of payments in a csv",
        "operationId": "GetPaymentsExportCsv",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "The Merchant's ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MinimumCreateDateTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumCreateDateTime",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Payments.Queries.GetMerchantPaymentsExport+Query`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System.IO.Stream"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/{merchantId}/v3": {
      "get": {
        "tags": [
          "MerchantReporting"
        ],
        "summary": "An list of statement transactions in JSON format\r\nthe same return as csv in json format",
        "operationId": "GetInvoiceTransactionsByDateRange",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "The Merchant's ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransferId",
            "in": "query",
            "description": "The transferId to filter merchant transactions by",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "The page subset of the total results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of records to include in the result set",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MinimumCreateDateTime",
            "in": "query",
            "description": "The begin created transaction date of the query search",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumCreateDateTime",
            "in": "query",
            "description": "The ending created transaction date of the query search",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "The order sort of the result set",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Transactions.Queries.BaseSearchMerchantTransactions+BaseQuery`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
            }
          },
          {
            "name": "X-QP-Signature",
            "in": "query",
            "description": "The signature for merchant validation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/System.IO.Stream"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/{merchantId}/v3/csv": {
      "get": {
        "tags": [
          "MerchantReporting"
        ],
        "summary": "A list of statement transactions, downloaded as a CSV file",
        "operationId": "GetInvoiceTransactionsByDateRangeAsCsv",
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "description": "The Merchant's ID",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "TransferId",
            "in": "query",
            "description": "The transferId to filter merchant transactions by",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "The page subset of the total results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of records to include in the result set",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "MinimumCreateDateTime",
            "in": "query",
            "description": "The begin created transaction date of the query search",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "MaximumCreateDateTime",
            "in": "query",
            "description": "The ending created transaction date of the query search",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "OrderBy",
            "in": "query",
            "description": "The order sort of the result set",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Transactions.Queries.BaseSearchMerchantTransactions+BaseQuery`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]"
            }
          },
          {
            "name": "X-QP-Signature",
            "in": "query",
            "description": "The signature for merchant validation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/csv": {
                "schema": {
                  "$ref": "#/components/schemas/System.IO.Stream"
                }
              }
            }
          }
        }
      }
    },
    "/settlements/invoices": {
      "get": {
        "tags": [
          "MerchantSettlementsReporting"
        ],
        "summary": "A list of invoices for the merchant for settlement reconciliation.",
        "operationId": "GetSettlementInvoicesJson",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "The Merchants Id Used as a part of the signing",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "From",
            "in": "query",
            "description": "Search starting date. Note that dates must be UTC midnight.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "To",
            "in": "query",
            "description": "Search ending date. Note that dates must be UTC midnight.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "The page subset of the total results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of records to include in the result set",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SearchCloseDate",
            "in": "query",
            "description": "By default this searches for transactions that are invoiced and paid out.\r\nSetting SearchCloseDate to true will search for invoiced transactions\r\nby the invoice close date instead of the date payment was made.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "X-QP-Signature",
            "in": "query",
            "description": "The signature for merchant validation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantSettlements.Models.InvoicesSearchResult"
                }
              }
            }
          }
        }
      }
    },
    "/settlements/report": {
      "get": {
        "tags": [
          "MerchantSettlementsReporting"
        ],
        "summary": "A list of transactions for the merchant for settlement reconciliation.",
        "operationId": "GetSettlementTransactionsJson",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "The Merchants Id Used as a part of the signing",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "From",
            "in": "query",
            "description": "Search starting date. Note that dates must be UTC midnight.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "To",
            "in": "query",
            "description": "Search ending date. Note that dates must be UTC midnight.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "description": "The page subset of the total results",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "description": "The number of records to include in the result set",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "SearchCloseDate",
            "in": "query",
            "description": "By default this searches for transactions that are invoiced and paid out.\r\nSetting SearchCloseDate to true will search for invoiced transactions\r\nby the invoice close date instead of the date payment was made.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "X-QP-Signature",
            "in": "query",
            "description": "The signature for merchant validation",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.MerchantSettlements.Models.TransactionsSearchResult"
                }
              }
            }
          }
        }
      }
    },
    "/google/orders/authorize": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Creates a new context for the QPAW rails on Checkout Anywhere.\r\nReturns a MerchantReference and RedirectUrl",
        "operationId": "AuthorizeGoogleOrder",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the merchant ID.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Metadata",
            "in": "query",
            "description": "Gets or sets optional metadata attached to the checkout.\r\nPossible values\r\n1) Apk (If the order was initiated from an app)\r\n2) Url (If the order was initiated from a merchant website)\r\n3) Id (If google pay order)",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "name": "Order.Amount",
            "in": "query",
            "description": "Gets or sets the order amount (Includes tax + shipping).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Order.Currency",
            "in": "query",
            "description": "Gets or sets the currency of the order amount (defaults to TerritorySettings).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.SkipEstimate",
            "in": "query",
            "description": "If this is true and order amount is not null, we will not prompt the customer for an amount in CKOA.\r\nIf this is true and order amount is null, we need to prompt the user for an amount in CKOA.\r\nIf this is false, we need to prompt the user for an amount in CKOA.\r\nUsed by Edge for now / Chrome Autofill will eventually use this.\r\nNullable because not all merchants are using this.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Customer.FirstName",
            "in": "query",
            "description": "Gets or sets the customer's first name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.LastName",
            "in": "query",
            "description": "Gets or sets the customer's last name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.Email",
            "in": "query",
            "description": "Gets or sets the customer's email address.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.Phone",
            "in": "query",
            "description": "Gets or sets the customer's phone number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.DateOfBirth",
            "in": "query",
            "description": "Gets or sets the customer's date of birth.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Customer.BillingAddress.Line1",
            "in": "query",
            "description": "Gets or sets the first address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.Line2",
            "in": "query",
            "description": "Gets or sets the second address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.City",
            "in": "query",
            "description": "Gets or sets the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.State",
            "in": "query",
            "description": "Gets or sets the state or province.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.PostalCode",
            "in": "query",
            "description": "Gets or sets the postal code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.CanLink",
            "in": "query",
            "description": "If this property is set to true, Zip will return a refreshToken/expiresIn value to the merchant during the callback\r\nUsed by Edge for now.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RedirectCancelUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RedirectConfirmUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MerchantReference",
            "in": "query",
            "description": "Gets or sets the merchant reference of the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TestData.BypassOTPEmail",
            "in": "query",
            "description": "This to bypass OTP by using the auth-mock token.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RememberMeKey",
            "in": "query",
            "description": "Gets or sets jwtToken RememberMeKey for fetching RefreshToken from FEO.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Results.AuthorizeCheckoutAnywhereResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/checkoutanywhere/orders/authorize": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Creates a new context for the QPAW rails on Checkout Anywhere via a POST command.\r\nReturns a MerchantReference and RedirectUrl",
        "operationId": "PostAuthorizeCheckoutAnywhereOrder",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Results.AuthorizeCheckoutAnywhereResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/orders/authorize": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Creates a new checkout context and redirects to the checkout website using details from the request body.",
        "operationId": "AuthorizeOrderPost",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.AuthorizeOrder"
              }
            }
          }
        },
        "responses": {
          "302": {
            "description": "Redirect"
          }
        }
      },
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Creates a new checkout context and redirects to the checkout website using details from the query string parameters.",
        "operationId": "AuthorizeOrderGet",
        "parameters": [
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the unique ID to use for order creation",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the merchant Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Order.AddOns",
            "in": "query",
            "description": "Gets or sets the AddOnRequest that are apart of this order",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOnRequest"
              }
            }
          },
          {
            "name": "Order.FirstName",
            "in": "query",
            "description": "Gets or sets the customer's first name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.LastName",
            "in": "query",
            "description": "Gets or sets the customer's last name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.Email",
            "in": "query",
            "description": "Gets or sets the customer's email address.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.Phone",
            "in": "query",
            "description": "Gets or sets the customer's phone number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.Line1",
            "in": "query",
            "description": "Gets or sets the first address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.Line2",
            "in": "query",
            "description": "Gets or sets the second address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.City",
            "in": "query",
            "description": "Gets or sets the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.State",
            "in": "query",
            "description": "Gets or sets the state or province.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.PostalCode",
            "in": "query",
            "description": "Gets or sets the postal code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.ShippingAddress.Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.Line1",
            "in": "query",
            "description": "Gets or sets the first address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.Line2",
            "in": "query",
            "description": "Gets or sets the second address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.City",
            "in": "query",
            "description": "Gets or sets the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.State",
            "in": "query",
            "description": "Gets or sets the state or province.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.PostalCode",
            "in": "query",
            "description": "Gets or sets the postal code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.BillingAddress.Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.Currency",
            "in": "query",
            "description": "Gets or sets the currency the order amount is in (defaults to TerritorySettings).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.Amount",
            "in": "query",
            "description": "Gets or sets the order amount.  This includes the tax and shipping amounts.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Order.TaxAmount",
            "in": "query",
            "description": "Gets or sets the optional tax amount.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Order.ShippingAmount",
            "in": "query",
            "description": "Gets or sets the optional shipping amount.",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Order.LineItems",
            "in": "query",
            "description": "Gets or sets the optional line items of what the user is purchasing.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.LineItem"
              }
            }
          },
          {
            "name": "Order.Description",
            "in": "query",
            "description": "Gets or sets a description for the order.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.OrderNumber",
            "in": "query",
            "description": "Gets or sets the QuadPay order number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ShippingPreference.AllowedShippingLocations",
            "in": "query",
            "description": "List of states/countries the merchant will ship to.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
              }
            }
          },
          {
            "name": "ShippingPreference.DeniedShippingLocations",
            "in": "query",
            "description": "List of states/countries the merchant will not ship to.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
              }
            }
          },
          {
            "name": "ShippingPreference.DeniedPOBoxShippingLocations",
            "in": "query",
            "description": "List of states/countries with PO Boxes the merchant will not ship to",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
              }
            }
          },
          {
            "name": "Test",
            "in": "query",
            "description": "Gets or sets a value indicating whether this is a test order.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Capture",
            "in": "query",
            "description": "Gets or sets a value indicating whether this order should be immediately captured.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RedirectCancelUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RedirectConfirmUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Metadata",
            "in": "query",
            "description": "Gets or sets optional metadata attached to the checkout.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "name": "Origin",
            "in": "query",
            "description": "Gets or sets the origin of the order. Usually the merchant's website.\r\nCan only be set internally.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "GatewayHost",
            "in": "query",
            "description": "Gets or sets the gateway api host.\r\nCan only be set internally.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CheckoutType",
            "in": "query",
            "description": "Gets or sets the type of the checkout. Defaults to Standard.\r\nCan only be set internally.",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.CheckoutType"
            }
          },
          {
            "name": "DeferOrderConfirmation",
            "in": "query",
            "description": "Gets or sets a value indicating whether or not to confirm the order upon customer checkout completion.  If true, the merchant\r\nmust make a secondary API call to confirm the order and begin the payment plan.  Default is false.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "CheckoutFlow",
            "in": "query",
            "description": "Gets or sets the checkout flow for this order. Default is standard",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.CheckoutFlow"
            }
          },
          {
            "name": "EntrySource",
            "in": "query",
            "description": "Gets or sets the entry source for this order. Default is EntrySource.Unknown",
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.EntrySource"
            }
          },
          {
            "name": "Expiration",
            "in": "query",
            "description": "Gets or sets a unix timestamp representing the expiration time of the checkout in seconds.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "MerchantUrl",
            "in": "query",
            "description": "Gets or sets the merchant's url",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ReturnToMerchant",
            "in": "query",
            "description": "Gets or sets a boolean dictating if the Zip Checkout will redirect back to the merchant checkout on completion",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "TokenizerSubdomain",
            "in": "query",
            "description": "Gets or sets a string assigning the tokenizer subdomain, if applicable. For merchants that use tokenizer gateways, such as CardConnect.com\r\nwill have a custom subdomain, i.e. http://{site}.cardconnect.com, that is used to perform callbacks and/or to tokenize the PAN data for the\r\nvirtual purchase. The tokenizer subdomain is set on the QuadPay button and retained through the callback so that virtual checkout can\r\nformulate an API URL for the merchants tokenizer gateway.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionalData.lastTransactionDate",
            "in": "query",
            "description": "The date of the customer's last transaction on a merchant's site.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "additionalData.accountCreationDate",
            "in": "query",
            "description": "The date the customer's account was created on a merchant's site.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "additionalData.customerLoggedIn",
            "in": "query",
            "description": "Indicates whether the customer is currently logged on a merchant's site.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "additionalData.CustomerIsMember",
            "in": "query",
            "description": "Indicates whether the customer is a member of the merchant's site.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "additionalData.MerchantRiskAssessment",
            "in": "query",
            "description": "The risk assessment score for the merchant.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionalData.SameDevice",
            "in": "query",
            "description": "Indicates whether the transaction was performed from the same device.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "additionalData.FulfillmentMethod",
            "in": "query",
            "description": "The method used to fulfill the order on a merchant's site.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionalData.CustomerTransactionCount",
            "in": "query",
            "description": "The total number of transactions made by the customer on a merchant's site.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "additionalData.CustomerAverageOrderValue",
            "in": "query",
            "description": "The average order value of the customer's transactions on a merchant's site.\r\nExample format: 123.45 or 123",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "additionalData.CustomerFraudIncidents",
            "in": "query",
            "description": "Indicates whether the customer has previous fraud incidents.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "PublicKey",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SdkSource",
            "in": "query",
            "description": "Gets or sets the SDK source for this order, used to distinguish traffic origin in telemetry.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MerchantReference",
            "in": "query",
            "description": "Gets or sets the unique merchant reference for this authorization.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "BrandName",
            "in": "query",
            "description": "Gets or sets the brand name of the merchant for this order.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "CallbackUrl",
            "in": "query",
            "description": "Gets or sets the status callback url.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect"
          }
        }
      }
    },
    "/orders/authorize-classic-api-sdk": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Pop-out classic checkout.\r\nCreates a new checkout context and redirects to the checkout website using details from the query string parameters.\r\nThis endpoint will be called by the \"api-checkout\" sdk (APIJSSDK product) in the virtual checkout repo",
        "operationId": "AuthorizeSdkApiOrderPost",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.AuthorizeOrder"
              }
            }
          }
        },
        "responses": {
          "302": {
            "description": "Redirect"
          }
        }
      }
    },
    "/orders/{orderId}/capture": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Captures funds for the specified order.  Only applicable to pay-on-ship/deferred fund capture merchants.\r\nIf sync query parameter is set to true, replies synchronously with callback payload, otherwise, replies asynchronously on callback URL.\r\nDefault sync value is false for asynchronous behavior.",
        "operationId": "CaptureOrder",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sync",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.CaptureOrder+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderOperationResponse"
                }
              }
            }
          },
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/orders/{orderId}/refund": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Refunds funds for the specified order and allocates them to the payment plan to apply it to the customer.\r\nIf sync query parameter is set to true, replies synchronously with callback payload, otherwise, replies asynchronously on callback URL.\r\nDefault sync value is false for asynchronous behavior.",
        "operationId": "RefundOrder",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sync",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.RefundOrder+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderOperationResponse"
                }
              }
            }
          },
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/orders/{orderId}/void": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Voids uncaptured funds for the specified order and allocates them to the payment plan to apply it to the customer.  Only applicable to pay-on-ship/deferred fund capture merchants.\r\nIf sync query parameter is set to true, replies synchronously with callback payload, otherwise, replies asynchronously on callback URL.\r\nDefault sync value is false for asynchronous behavior.",
        "operationId": "VoidOrder",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sync",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.VoidOrder+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderOperationResponse"
                }
              }
            }
          },
          "204": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/orders/{orderId}/confirm": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Confirms the supplied authorized order and initiates the payment plan for the customer.\r\nIf sync query parameter is set to true, replies synchronously with callback payload, otherwise, replies asynchronously on callback URL.\r\nDefault sync value is false for asynchronous behavior.",
        "operationId": "ConfirmOrder",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sync",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.ConfirmOrder+Command"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request"
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderOperationResponse"
                }
              }
            }
          },
          "204": {
            "description": "Success"
          }
        }
      }
    },
    "/orders/associate": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Associates a merchant's unique order ID with an order after creation.",
        "operationId": "AssociateMerchantPlatformIdToOrder",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.AssociateMerchantPlatformIdToOrder+Command"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Success"
          }
        }
      }
    },
    "/orders/calculate-merchant-fees": {
      "post": {
        "tags": [
          "Orders"
        ],
        "summary": "Not supported anymore.\r\nCalculates merchant fees for the given order details.  This is used to support determining the merchant fee for payment plan (MFPP).",
        "operationId": "CalculateMerchantFeeForPaymentPlan",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.CalculateMerchantFees+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Commands.CalculateMerchantFees+Result"
                }
              }
            }
          }
        },
        "deprecated": true
      }
    },
    "/orders/{orderId}/status": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Returns Status of an order belong to the requesting Merchant.",
        "operationId": "RetrieveOrderStatus",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "Gets or sets the Id of the Order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the MerchantId.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Metadata",
            "in": "query",
            "description": "Gets or sets optional metadata.",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.RetrieveOrderStatus+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          }
        }
      }
    },
    "/orders/{orderId}/detail": {
      "get": {
        "tags": [
          "Orders"
        ],
        "summary": "Returns Detail of an order belong to the requesting Merchant.",
        "operationId": "RetrieveOrderDetail",
        "parameters": [
          {
            "name": "orderId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderId",
            "in": "query",
            "description": "The Id of the Order.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "description": "The Merchants Id.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Timestamp",
            "in": "query",
            "description": "The time in unix format. (Seconds since Epoch).\r\n<para />\r\nLinks are only valid for 1 hour.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail"
                }
              }
            }
          },
          "404": {
            "description": "Not Found"
          },
          "503": {
            "description": "Server Error"
          },
          "400": {
            "description": "Bad Request"
          }
        }
      }
    },
    "/google/testing/orders/authorize": {
      "get": {
        "tags": [
          "OrdersTesting"
        ],
        "summary": "Creates a new context for the QPAW rails on Checkout Anywhere.\r\nReturns a MerchantReference and RedirectUrl",
        "operationId": "AuthorizeGoogleOrder",
        "parameters": [
          {
            "name": "MerchantId",
            "in": "query",
            "description": "Gets or sets the merchant ID.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Metadata",
            "in": "query",
            "description": "Gets or sets optional metadata attached to the checkout.\r\nPossible values\r\n1) Apk (If the order was initiated from an app)\r\n2) Url (If the order was initiated from a merchant website)\r\n3) Id (If google pay order)",
            "schema": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          {
            "name": "Order.Amount",
            "in": "query",
            "description": "Gets or sets the order amount (Includes tax + shipping).",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "Order.Currency",
            "in": "query",
            "description": "Gets or sets the currency of the order amount (defaults to TerritorySettings).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Order.SkipEstimate",
            "in": "query",
            "description": "If this is true and order amount is not null, we will not prompt the customer for an amount in CKOA.\r\nIf this is true and order amount is null, we need to prompt the user for an amount in CKOA.\r\nIf this is false, we need to prompt the user for an amount in CKOA.\r\nUsed by Edge for now / Chrome Autofill will eventually use this.\r\nNullable because not all merchants are using this.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "Customer.FirstName",
            "in": "query",
            "description": "Gets or sets the customer's first name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.LastName",
            "in": "query",
            "description": "Gets or sets the customer's last name.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.Email",
            "in": "query",
            "description": "Gets or sets the customer's email address.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.Phone",
            "in": "query",
            "description": "Gets or sets the customer's phone number.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.DateOfBirth",
            "in": "query",
            "description": "Gets or sets the customer's date of birth.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Customer.BillingAddress.Line1",
            "in": "query",
            "description": "Gets or sets the first address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.Line2",
            "in": "query",
            "description": "Gets or sets the second address line.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.City",
            "in": "query",
            "description": "Gets or sets the city.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.State",
            "in": "query",
            "description": "Gets or sets the state or province.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.PostalCode",
            "in": "query",
            "description": "Gets or sets the postal code.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.BillingAddress.Country",
            "in": "query",
            "description": "Gets or sets the country.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Customer.CanLink",
            "in": "query",
            "description": "If this property is set to true, Zip will return a refreshToken/expiresIn value to the merchant during the callback\r\nUsed by Edge for now.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "RedirectCancelUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RedirectConfirmUrl",
            "in": "query",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "MerchantReference",
            "in": "query",
            "description": "Gets or sets the merchant reference of the checkout.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "TestData.BypassOTPEmail",
            "in": "query",
            "description": "This to bypass OTP by using the auth-mock token.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "RememberMeKey",
            "in": "query",
            "description": "Gets or sets jwtToken RememberMeKey for fetching RefreshToken from FEO.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Results.AuthorizeCheckoutAnywhereResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/orders/pre-qualifications/assess": {
      "post": {
        "tags": [
          "PreQualifications"
        ],
        "summary": "Assess pre-qualification for the given customer",
        "operationId": "AssessPreQualification",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Command"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Command"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Command"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Command"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              }
            }
          },
          "429": {
            "description": "Client Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result"
                }
              }
            }
          }
        }
      }
    },
    "/orders/pre-qualifications/initialize": {
      "post": {
        "tags": [
          "PreQualifications"
        ],
        "summary": "Initialize pre-qualification for the given customer",
        "operationId": "InitializePreQualification",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.InitializePreQualification"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.InitializePreQualification"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.InitializePreQualification"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.InitializePreQualification"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.InitializePreQualificationResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.InitializePreQualificationResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Results.InitializePreQualificationResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/Promotions/eligible": {
      "get": {
        "tags": [
          "Promotions"
        ],
        "operationId": "GetEligiblePromotions",
        "parameters": [
          {
            "name": "CustomerId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "OrderAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/Promotions/checkout/offers": {
      "post": {
        "tags": [
          "Promotions"
        ],
        "operationId": "GetEligiblePromotionsCustomerRequest",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Query"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Query"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Query"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Query"
              }
            }
          }
        },
        "responses": {
          "500": {
            "description": "Server Error"
          },
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Result"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Bearer": [ ]
          }
        ]
      }
    },
    "/payments_apps/api/2022-04/graphql.json": {
      "post": {
        "tags": [
          "ShopifyCallbackTester"
        ],
        "operationId": "PostGraphQLRequest",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "object",
                "additionalProperties": { }
              }
            },
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": { }
              }
            },
            "text/json": {
              "schema": {
                "type": "object",
                "additionalProperties": { }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "object",
                "additionalProperties": { }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/shopifyPayments/testing/{requestType}/{key}": {
      "get": {
        "tags": [
          "ShopifyTesterCache"
        ],
        "operationId": "GetCallbackRequest",
        "parameters": [
          {
            "name": "requestType",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/QuadPay.Gateway.ShopifyPayments.Testing.Models.RequestType"
            }
          },
          {
            "name": "key",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        }
      }
    },
    "/checkoutanywhere/token/{sessionToken}": {
      "get": {
        "tags": [
          "Token"
        ],
        "summary": "Gets the checkout anywhere token from Redis with the session token.",
        "operationId": "GetCheckoutAnywhereSessionToken",
        "parameters": [
          {
            "name": "SessionToken",
            "in": "path",
            "description": "Gets or sets the session token.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Queries.GetCheckoutAnywhereToken+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/google/orders/{orderId}": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "summary": "Gets a Google order by order id.",
        "operationId": "GetOrderById",
        "parameters": [
          {
            "name": "OrderId",
            "in": "path",
            "description": "Gets or sets the OrderId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Server Error"
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrderById+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/google/customers/{customerId}/orders": {
      "get": {
        "tags": [
          "Transaction"
        ],
        "summary": "Gets all Google Orders for a specific customer.",
        "operationId": "GetOrdersByCustomerId",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/api/v1/orders/search-by-order": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Search for an order by merchant ID and order ID.",
        "operationId": "SearchByOrder",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrderById+Query"
              }
            }
          }
        },
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrderById+Result"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/orders/search-by-customer": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "summary": "Search for orders by merchant ID and customer ID.",
        "operationId": "SearchByCustomer",
        "parameters": [
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Query"
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Result"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/google/testing/orders/{orderId}": {
      "get": {
        "tags": [
          "TransactionTesting"
        ],
        "summary": "Gets a Google order by order id.",
        "operationId": "GetOrderById",
        "parameters": [
          {
            "name": "OrderId",
            "in": "path",
            "description": "Gets or sets the OrderId",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "500": {
            "description": "Server Error"
          },
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrderById+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/google/testing/customers/{customerId}/orders": {
      "get": {
        "tags": [
          "TransactionTesting"
        ],
        "summary": "Gets all Google Orders for a specific customer.",
        "operationId": "GetOrdersByCustomerId",
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "MerchantId",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The requested API version",
            "schema": {
              "type": "string",
              "default": "1.0"
            }
          },
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Result"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Server Error"
          }
        }
      }
    },
    "/virtual/orders": {
      "post": {
        "tags": [
          "Virtual"
        ],
        "operationId": "PostAuthorizeVirtualOrder",
        "parameters": [
          {
            "name": "QP-Territory",
            "in": "header",
            "description": "Territory of the request",
            "required": true,
            "schema": {
              "enum": [
                "US",
                "CA",
                "GB"
              ],
              "type": "string",
              "default": "US"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Commands.AuthorizeVirtualApiCommand"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Commands.AuthorizeVirtualApiCommand"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Commands.AuthorizeVirtualApiCommand"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Commands.AuthorizeVirtualApiCommand"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Models.AuthorizeVirtualApiResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Models.AuthorizeVirtualApiResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Models.AuthorizeVirtualApiResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "QuadPay.Domain.Core.Enums.BankPartner": {
        "enum": [
          "unknown",
          "none",
          "webBank"
        ],
        "type": "string"
      },
      "QuadPay.Domain.Core.Enums.CurrencyCode": {
        "enum": [
          "usd",
          "cad",
          "aed",
          "afn",
          "all",
          "amd",
          "ang",
          "aoa",
          "ars",
          "aud",
          "awg",
          "azn",
          "bam",
          "bbd",
          "bdt",
          "bgn",
          "bif",
          "bmd",
          "bnd",
          "bob",
          "brl",
          "bsd",
          "bwp",
          "bzd",
          "cdf",
          "chf",
          "clp",
          "cny",
          "cop",
          "crc",
          "cve",
          "czk",
          "djf",
          "dkk",
          "dop",
          "dzd",
          "egp",
          "etb",
          "eur",
          "fjd",
          "fkp",
          "gbp",
          "gel",
          "ghs",
          "gip",
          "gmd",
          "gnf",
          "gtq",
          "gyd",
          "hkd",
          "hnl",
          "hrk",
          "htg",
          "huf",
          "idr",
          "ils",
          "inr",
          "isk",
          "jmd",
          "jpy",
          "kes",
          "kgs",
          "khr",
          "kmf",
          "krw",
          "kyd",
          "kzt",
          "lak",
          "lbp",
          "lkr",
          "lrd",
          "lsl",
          "mad",
          "mdl",
          "mga",
          "mkd",
          "mmk",
          "mnt",
          "mop",
          "mro",
          "mur",
          "mvr",
          "mwk",
          "mxn",
          "myr",
          "mzn",
          "nad",
          "ngn",
          "nio",
          "nok",
          "npr",
          "nzd",
          "pab",
          "pen",
          "pgk",
          "php",
          "pkr",
          "pln",
          "pyg",
          "qar",
          "ron",
          "rsd",
          "rub",
          "rwf",
          "sar",
          "sbd",
          "scr",
          "sek",
          "sgd",
          "shp",
          "sll",
          "sos",
          "srd",
          "std",
          "szl",
          "thb",
          "tjs",
          "top",
          "try",
          "ttd",
          "twd",
          "tzs",
          "uah",
          "ugx",
          "uyu",
          "uzs",
          "vnd",
          "vuv",
          "wst",
          "xaf",
          "xcd",
          "xof",
          "xpf",
          "yer",
          "zar",
          "zmw"
        ],
        "type": "string"
      },
      "QuadPay.Domain.Core.Enums.ProductType": {
        "enum": [
          "none",
          "quadPayClassic",
          "quadPayAnywhere",
          "quadPayVirtual",
          "quadPayInStore",
          "longDurationLending"
        ],
        "type": "string"
      },
      "QuadPay.Domain.Core.Enums.ScheduleType": {
        "enum": [
          "None",
          "Classic",
          "PayIn3Months",
          "PayIn6Months",
          "PayIn12Months"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Command": {
        "type": "object",
        "properties": {
          "chargeId": {
            "type": "string",
            "description": "The charge id from the pre authorization.",
            "nullable": true
          },
          "checkoutContext": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.CheckoutContext"
          },
          "customerPersonalInfo": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.CustomerPersonalInfo"
          },
          "paymentOptionsToken": {
            "type": "string",
            "description": "The payment options token.",
            "nullable": true
          },
          "paymentSourceId": {
            "type": "string",
            "description": "Gets or sets the payment source ID to be used to make the first installment payment.",
            "nullable": true
          },
          "promotionContext": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Models.PromotionTokenContext"
          },
          "riskApprovalContext": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.DecisionEngineContext"
          },
          "riskApprovalToken": {
            "type": "string",
            "description": "Gets or sets the risk approval token.",
            "nullable": true
          },
          "selectedPaymentSchedule": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedPaymentPlan"
          },
          "authorizationAmount": {
            "type": "number",
            "description": "Gets or sets the authorization amount.",
            "format": "double"
          },
          "productOptions": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.ProductOptions"
          }
        },
        "additionalProperties": false,
        "description": "Command that completes the provided checkout session and creates the order."
      },
      "QuadPay.Gateway.Checkout.Commands.CompleteCheckoutInternal+Result": {
        "type": "object",
        "properties": {
          "redirectTo": {
            "type": "string",
            "description": "Gets or sets the optional redirect url.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Commands.CompleteVirtualPurchase": {
        "type": "object",
        "properties": {
          "callbackToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.CheckoutContext": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the unique Id of the Checkout.",
            "format": "uuid"
          },
          "type": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.CheckoutType"
          },
          "checkoutFlow": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.CheckoutFlow"
          },
          "entrySource": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.EntrySource"
          },
          "expiration": {
            "type": "integer",
            "description": "Gets or sets a unix timestamp representing the expiration time of the checkout.",
            "format": "int64"
          },
          "startDateTime": {
            "type": "string",
            "description": "Gets or sets the date time of when the user started the checkout.",
            "format": "date-time"
          },
          "merchant": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.MerchantInfo"
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the merchant reference of the checkout.",
            "nullable": true
          },
          "originalOrderAmount": {
            "type": "number",
            "description": "Order amount minus any fees added on.",
            "format": "double"
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Order"
          },
          "isDefaultCurrency": {
            "type": "boolean",
            "description": "Gets or sets if the selected currency is default."
          },
          "origin": {
            "type": "string",
            "description": "Gets or sets the origin of the order. Usually the merchant's website.",
            "nullable": true
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this was a test order."
          },
          "capture": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the order should be immediately captured."
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the status callback url.",
            "nullable": true
          },
          "redirectCancelUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "nullable": true
          },
          "redirectConfirmUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "nullable": true
          },
          "error": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.CheckoutError"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata attached to the checkout.",
            "nullable": true
          },
          "gatewayHost": {
            "type": "string",
            "description": "Gets or sets the gateway API host.",
            "nullable": true
          },
          "expirationInMinutes": {
            "type": "integer",
            "description": "Gets or sets a value indicating whether or not to confirm the order upon customer checkout completion.  If set and nonzero,\r\norder will not be confirmed until subsequent merchant call to confirm",
            "format": "int64",
            "nullable": true
          },
          "territory": {
            "type": "string",
            "description": "Gets or sets the territory the checkout is taking place in.",
            "nullable": true
          },
          "isPreOrder": {
            "type": "boolean",
            "description": "Gets or sets if this checkout has preorder items in it"
          },
          "preOrderAmount": {
            "type": "number",
            "description": "Gets or sets the total price of preorder items in the checkout. Must be greater than zero",
            "format": "double"
          },
          "authorizationAmount": {
            "type": "number",
            "description": "Gets or sets the authorization amount for a preorder. If it is a preorder, then set to preorder amount, otherwise leave as null.",
            "format": "double",
            "nullable": true
          },
          "shouldBypassFirstInstallmentAuthorization": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether or not we should skip authorizing the first installment amount.  This will\r\nbe true for some no-PR VC flows."
          },
          "brandName": {
            "type": "string",
            "description": "Gets or sets the brand name of the merchant for this order",
            "nullable": true
          },
          "merchantUrl": {
            "type": "string",
            "description": "Gets or sets the merchant's url",
            "nullable": true
          },
          "returnToMerchant": {
            "type": "boolean",
            "description": "Gets or sets a boolean dictating if the Zip Checkout will redirect back to the merchant checkout on completion"
          },
          "isShippingEstimated": {
            "type": "boolean",
            "description": "Gets or sets a boolean to indicate whether shipping fee is estimated"
          },
          "isTaxEstimated": {
            "type": "boolean",
            "description": "Gets or sets a boolean to indicate whether tax is estimated"
          },
          "shippingPreference": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference"
          },
          "additionalData": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AdditionalRiskData"
          },
          "isPreQualification": {
            "type": "boolean",
            "description": "Gets or sets if this context belongs to a PreQualification or not.\r\nThis is used when performing a PreQualification in Decision Engine."
          },
          "availablePaymentSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.PaymentScheduleSummary"
            },
            "description": "The list of available schedules for the merchant.",
            "nullable": true
          },
          "paymentSchedules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.PaymentScheduleSummary"
            },
            "description": "The list of schedules for the merchant and order.",
            "nullable": true
          },
          "merchantFeeForPaymentPlan": {
            "type": "number",
            "description": "TODO - Remove this once we migrate to React checkout\r\nDecimal defaults to 0 but lets set it to be explicit.",
            "format": "double",
            "readOnly": true
          },
          "promotionInfo": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Models.PromotionInfo"
          },
          "cardDeliveryMethod": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Virtual.Models.VirtualCardDeliveryMethod"
          },
          "publicKey": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.CheckoutError": {
        "enum": [
          "noAmount",
          "lessThanMinimumAmount",
          "greaterThanMaximumAmount"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Checkout.Models.CheckoutType": {
        "enum": [
          "standard",
          "virtual",
          "longDurationLending"
        ],
        "type": "string",
        "description": "Denotes the type of checkout the user is experiencing."
      },
      "QuadPay.Gateway.Checkout.Models.CustomerPersonalInfo": {
        "type": "object",
        "properties": {
          "addressLine1": {
            "type": "string",
            "description": "Gets or sets the customer's address line 1.",
            "nullable": true
          },
          "addressLine2": {
            "type": "string",
            "description": "Gets or sets the customer's address line 2.",
            "nullable": true
          },
          "addressCity": {
            "type": "string",
            "description": "Gets or sets the customer's address city.",
            "nullable": true
          },
          "addressState": {
            "type": "string",
            "description": "Gets or sets the customer's address state.",
            "nullable": true
          },
          "addressPostalCode": {
            "type": "string",
            "description": "Gets or sets the customer's address postal code.",
            "nullable": true
          },
          "addressCountry": {
            "type": "string",
            "description": "Gets or sets the customer's address country.",
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Gets or sets the customer's date of birth.",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the customer's email address.",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "Gets or sets the customer's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the customer's last name.",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "description": "Gets or sets the customer's phone number.",
            "nullable": true
          },
          "customerTerritory": {
            "type": "string",
            "description": "Gets or sets the customer's territory.",
            "nullable": true
          },
          "phoneNumberCountry": {
            "type": "string",
            "description": "Gets or sets the customer's phone number country code",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates customer information to be used within the checkout for pre-filling data."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.AppliedOrderFee": {
        "type": "object",
        "properties": {
          "feeModel": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.FeeModel"
          },
          "amount": {
            "type": "number",
            "description": "Fee amount charged on the assessment",
            "format": "double",
            "nullable": true
          },
          "hasStateOverride": {
            "type": "boolean",
            "description": "Indicates if state override has been added"
          },
          "customerFeeTiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.AppliedOrderFee+CustomerFeeTier"
            },
            "description": "Fee tiers of the state when state override applied",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "DE uses the class below so we need to replicate it."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.AppliedOrderFee+CustomerFeeTier": {
        "type": "object",
        "properties": {
          "feeStartsAt": {
            "type": "number",
            "description": "This is an inclusive value i.e. the tier includes all order amounts >= this value.\r\nThe tier goes up to any value less than the next FeeTier's FeeStartsAt, or the merchant's MaximumOrderAmount if there's no \"next\".",
            "format": "double"
          },
          "totalFeePerOrder": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "DE uses the class below so we need to replicate it."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.AprTargetFee": {
        "type": "object",
        "properties": {
          "aprTarget": {
            "type": "number",
            "description": "Gets or sets annual percentage rate target",
            "format": "double"
          },
          "maximumApr": {
            "type": "number",
            "description": "Gets or sets maximum annaul percentage rate",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedInstallment": {
        "type": "object",
        "properties": {
          "sequenceNumber": {
            "type": "integer",
            "description": "Gets or sets the 1-based sequence of the installment (e.g. 1 = first installment)",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the installment amount without any fees.",
            "format": "double"
          },
          "date": {
            "type": "string",
            "description": "Gets or sets the date the installment is due.",
            "format": "date-time"
          },
          "totalAmountIncludingFees": {
            "type": "number",
            "description": "Gets or sets the total amount of the installment including fees.",
            "format": "double"
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.Fee"
            },
            "description": "Gets or sets any fees associated with the installment.",
            "nullable": true
          },
          "totalAmountBreakdown": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedInstallment+AmountBreakdown"
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates an installment the customer will pay in their payment plan."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedInstallment+AmountBreakdown": {
        "type": "object",
        "properties": {
          "baseAmount": {
            "type": "number",
            "format": "double"
          },
          "downPaymentAmount": {
            "type": "number",
            "format": "double"
          },
          "feeAmount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedPaymentPlan": {
        "type": "object",
        "properties": {
          "productOptions": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.ProductOptions"
          },
          "installments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedInstallment"
            },
            "nullable": true
          },
          "requestedAmount": {
            "type": "number",
            "format": "double"
          },
          "approvedAmount": {
            "type": "number",
            "format": "double"
          },
          "downPaymentAmount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "dateOfFinalInstallment": {
            "type": "string",
            "format": "date-time"
          },
          "installmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "installmentIntervalDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Represents a calculated and approved payment plan"
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.CreditPolicy": {
        "type": "object",
        "properties": {
          "jurisdiction": {
            "type": "string",
            "nullable": true
          },
          "rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CreditRule"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.CreditRule": {
        "type": "object",
        "properties": {
          "ruleType": {
            "type": "string",
            "nullable": true
          },
          "ruleTarget": {
            "type": "string",
            "nullable": true
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.DecisionEngineContext": {
        "type": "object",
        "properties": {
          "requestId": {
            "type": "string",
            "description": "Gets or sets the order ID used for the risk assessment.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the order amount used in the risk assessment.",
            "format": "double"
          },
          "productType": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.ProductType"
          },
          "customerId": {
            "type": "string",
            "description": "Gets or sets the customer that received the risk assessment.",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the merchant ID associated with the order for the risk assessment.",
            "format": "uuid"
          },
          "merchantName": {
            "type": "string",
            "description": "Gets or sets the merchant name associated with the order for the risk assessment.",
            "nullable": true
          },
          "orderAmount": {
            "type": "number",
            "description": "Gets or sets the order amount decisioned with that applies to this order",
            "format": "double",
            "nullable": true
          },
          "availablePaymentPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CalculatedPaymentPlan"
            },
            "description": "Gets or sets the approved payment plans from risk assessment",
            "nullable": true
          },
          "appliedOrderFee": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.AppliedOrderFee"
          },
          "bankPartner": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.BankPartner"
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates a risk assessment result from the DE."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.Fee": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount of the fee.",
            "format": "double"
          },
          "feeType": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.FeeType"
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates a fee that would apply to an installment."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.FeeModel": {
        "enum": [
          "none",
          "mfpp",
          "customerFee"
        ],
        "type": "string",
        "description": "DE uses the enum below so we need to replicate it."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.FeeType": {
        "enum": [
          "defaulted",
          "serviceFee"
        ],
        "type": "string",
        "description": "Encapsulates the type of fees QuadPay supports."
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.ProductOptions": {
        "type": "object",
        "properties": {
          "productType": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.ProductType"
          },
          "scheduleType": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.ScheduleType"
          },
          "numberOfInstallments": {
            "type": "integer",
            "description": "Gets the total number of installments.",
            "format": "int32"
          },
          "firstInstallmentPercentage": {
            "type": "number",
            "description": "Gets the percentage of the first installment.",
            "format": "double"
          },
          "installmentFrequency": {
            "type": "integer",
            "description": "Gets the installment frequency for the schedule",
            "format": "int32"
          },
          "installmentFrequencyType": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.ProductOptions+FrequencyType"
          },
          "installmentServiceFee": {
            "type": "number",
            "description": "Gets the service fee applied to each installment.",
            "format": "double",
            "nullable": true
          },
          "feeStructure": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.ServiceFeeStructure"
          },
          "creditPolicy": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.CreditPolicy"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.ProductOptions+FrequencyType": {
        "enum": [
          "days",
          "months"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.ServiceFeeStructure": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Fee Type. Represents to Service Fee Type(None, Default Fee. Tiered Fee)",
            "nullable": true
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.ServiceFeeStructure+FeeTier"
            },
            "description": "Fee tiers. This gets populated only if the Type is Tiered.\r\nThis will be empty for other fee types like Default or None.",
            "nullable": true
          },
          "aprTargetFee": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Checkout.Models.Decisioning.AprTargetFee"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.Decisioning.ServiceFeeStructure+FeeTier": {
        "type": "object",
        "properties": {
          "minimum": {
            "type": "number",
            "format": "double"
          },
          "maximum": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "feePerInstallment": {
            "type": "number",
            "format": "double"
          },
          "totalFee": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Checkout.Models.MerchantInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets or sets the unique Id of the Merchant.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the display name of the merchant.",
            "nullable": true
          },
          "merchantDisplayName": {
            "type": "string",
            "description": "Sets or gets the merchant's display name for the checkout.",
            "nullable": true
          },
          "minimumOrderAmount": {
            "type": "integer",
            "description": "Gets or sets the optional minimum order amount of the merchant.",
            "format": "int32",
            "nullable": true
          },
          "maximumOrderAmount": {
            "type": "integer",
            "description": "Gets or sets the optional maximum order amount of the merchant.",
            "format": "int32",
            "nullable": true
          },
          "installmentServiceFee": {
            "type": "number",
            "description": "Gets or sets the optional installment service fee override value of the merchant.",
            "format": "double",
            "nullable": true
          },
          "productScheduleOptions": {
            "type": "object",
            "properties": {
              "None": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions"
              },
              "Classic": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions"
              },
              "PayIn3Months": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions"
              },
              "PayIn6Months": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions"
              },
              "PayIn12Months": {
                "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions"
              }
            },
            "additionalProperties": false,
            "description": "Gets or set the optional schedule installment service fee overrides of the merchant.",
            "nullable": true
          },
          "bankPartner": {
            "type": "string",
            "description": "Gets or sets the bank partner.",
            "nullable": true
          },
          "isCustomerFeesConfigured": {
            "type": "boolean",
            "description": "Gets or sets if customer fees are configured."
          },
          "isPreQualificationsEnabled": {
            "type": "boolean",
            "description": "Gets or sets if pre qualifications is enabled for this merchant."
          },
          "isBackOrdersEnabled": {
            "type": "boolean",
            "description": "Gets or sets if backorders are enabled for this merchant"
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates basic merchant details for the checkout."
      },
      "QuadPay.Gateway.Checkout.Results.CompleteVirtualPurchaseResult": {
        "type": "object",
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Commands.AuthorizeCheckoutAnywhere": {
        "type": "object",
        "properties": {
          "publicKey": {
            "type": "string",
            "nullable": true
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the merchant ID.",
            "format": "uuid",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata attached to the checkout.\r\nPossible values\r\n1) Apk (If the order was initiated from an app)\r\n2) Url (If the order was initiated from a merchant website)\r\n3) Id (If google pay order)",
            "nullable": true
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Models.Order"
          },
          "customer": {
            "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Models.Customer"
          },
          "redirectCancelUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "nullable": true
          },
          "redirectConfirmUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the merchant reference of the checkout.",
            "nullable": true
          },
          "testData": {
            "$ref": "#/components/schemas/QuadPay.Gateway.CheckoutAnywhere.Models.TestDataParameters"
          },
          "rememberMeKey": {
            "type": "string",
            "description": "Gets or sets jwtToken RememberMeKey for fetching RefreshToken from FEO.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Models.Customer": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Gets or sets the customer's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the customer's last name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the customer's email address.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the customer's phone number.",
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Gets or sets the customer's date of birth.",
            "format": "date-time",
            "nullable": true
          },
          "billingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "canLink": {
            "type": "boolean",
            "description": "If this property is set to true, Zip will return a refreshToken/expiresIn value to the merchant during the callback\r\nUsed by Edge for now.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Models.Order": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Gets or sets the order amount (Includes tax + shipping).",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency of the order amount (defaults to TerritorySettings).",
            "nullable": true
          },
          "skipEstimate": {
            "type": "boolean",
            "description": "If this is true and order amount is not null, we will not prompt the customer for an amount in CKOA.\r\nIf this is true and order amount is null, we need to prompt the user for an amount in CKOA.\r\nIf this is false, we need to prompt the user for an amount in CKOA.\r\nUsed by Edge for now / Chrome Autofill will eventually use this.\r\nNullable because not all merchants are using this.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Models.TestDataParameters": {
        "type": "object",
        "properties": {
          "bypassOTPEmail": {
            "type": "string",
            "description": "This to bypass OTP by using the auth-mock token.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Queries.GetCheckoutAnywhereToken+Result": {
        "type": "object",
        "properties": {
          "checkoutAnywhereToken": {
            "type": "string",
            "description": "Gets or sets the checkout anywhere token.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CheckoutAnywhere.Results.AuthorizeCheckoutAnywhereResult": {
        "type": "object",
        "properties": {
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "redirectTo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.CustomerPortal.Models.OrderDetailStatus": {
        "enum": [
          "Completed",
          "Refunded"
        ],
        "type": "string",
        "description": "Enum to represent an order status.\r\nThis is only used by Google for now (No other merchants are retrieving Order Details)."
      },
      "QuadPay.Gateway.CustomerPortal.Models.Refund": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "refundDateTime": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.GlobalGateway.Commands.UploadDisputeFile+Command": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "disputeId": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "blob": {
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Google.Models.PaymentScheduleType": {
        "enum": [
          "PayInZ_Finance_Charge"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.MerchantDisputes.Commands.AcceptDispute+Command": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "The merchant's Id.",
            "format": "uuid"
          },
          "disputeId": {
            "type": "string",
            "description": "The dispute id.",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Commands.SubmitDisputeEvidence+Command": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "The merchant's Id.",
            "format": "uuid"
          },
          "disputeId": {
            "type": "string",
            "description": "The dispute id.",
            "format": "uuid"
          },
          "receipt": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "refundPolicy": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "refundPolicyDisclosure": {
            "type": "string",
            "description": "Documentation demonstrating that the customer was shown your refund policy prior\r\nto purchase.",
            "nullable": true
          },
          "refundRefusalExplanation": {
            "type": "string",
            "description": "A justification for why the customer is not entitled to a refund.",
            "nullable": true
          },
          "serviceDate": {
            "type": "string",
            "description": "The date on which the customer received or began receiving the purchased service,\r\nin a clear human-readable format.",
            "nullable": true
          },
          "serviceDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "shippingAddress": {
            "type": "string",
            "description": "The address to which a physical product was shipped. You should try to include\r\nas complete address information as possible.",
            "nullable": true
          },
          "shippingCarrier": {
            "type": "string",
            "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS,\r\netc. If multiple carriers were used for this purchase, please separate them with\r\ncommas.",
            "nullable": true
          },
          "shippingDate": {
            "type": "string",
            "description": "The date on which a physical product began its route to the shipping address,\r\nin a clear human-readable format.",
            "nullable": true
          },
          "shippingDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "shippingTrackingNumber": {
            "type": "string",
            "description": "The tracking number for a physical product, obtained from the delivery service.\r\nIf multiple tracking numbers were generated for this purchase, please separate\r\nthem with commas.",
            "nullable": true
          },
          "uncategorizedFile": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "productDescription": {
            "type": "string",
            "description": "A description of the product or service that was sold.",
            "nullable": true
          },
          "duplicateChargeExplanation": {
            "type": "string",
            "description": "An explanation of the difference between the disputed charge versus the prior\r\ncharge that appears to be a duplicate.",
            "nullable": true
          },
          "accessActivityLog": {
            "type": "string",
            "description": "Any server or activity logs showing proof that the customer accessed or downloaded\r\nthe purchased digital product. This information should include IP addresses,\r\ncorresponding timestamps, and any detailed recorded activity.",
            "nullable": true
          },
          "billingAddress": {
            "type": "string",
            "description": "The billing address provided by the customer.",
            "nullable": true
          },
          "cancellationPolicy": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "cancellationPolicyDisclosure": {
            "type": "string",
            "description": "An explanation of how and when the customer was shown your refund policy prior\r\nto purchase.",
            "nullable": true
          },
          "cancellationRebuttal": {
            "type": "string",
            "description": "A justification for why the customer's subscription was not canceled.",
            "nullable": true
          },
          "customerCommunication": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "customerEmailAddress": {
            "type": "string",
            "description": "The email address of the customer.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "The name of the customer.",
            "nullable": true
          },
          "customerPurchaseIp": {
            "type": "string",
            "description": "The IP address that the customer used when making the purchase.",
            "nullable": true
          },
          "customerSignature": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "duplicateChargeDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "duplicateChargeId": {
            "type": "string",
            "description": "The payment ID for the prior charge which appears to be a duplicate of the disputed\r\ncharge.",
            "nullable": true
          },
          "uncategorizedText": {
            "type": "string",
            "description": "Any additional evidence or statements.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "The merchant's Id.",
            "format": "uuid"
          },
          "disputeId": {
            "type": "string",
            "description": "The dispute id.",
            "format": "uuid"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command+File"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Commands.UploadDisputeEvidenceFilesFromBlob+Command+File": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "Receipt,\r\nRefundPolicy,\r\nServiceDocumentation,\r\nShippingDocumentation,\r\nCancellationPolicy,\r\nCustomerCommunication,\r\nCustomerSignature,\r\nDuplicateChargeDocumentation,\r\nUncategorizedFile,",
            "nullable": true
          },
          "blob": {
            "type": "string",
            "description": "A blob with a SAS token. There is no assumption where this is hosted.",
            "format": "uri",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "description": "Setting a filename if it's not the same as the blob.",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "description": "Indicate the content type of the blob. application/pdf etc.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.MerchantDisputesController+UploadDisputeEvidenceFileRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "The merchant's Id.",
            "format": "uuid"
          },
          "disputeId": {
            "type": "string",
            "description": "The dispute id.",
            "format": "uuid"
          },
          "category": {
            "type": "string",
            "description": "Receipt,\r\nRefundPolicy,\r\nServiceDocumentation,\r\nShippingDocumentation,\r\nCancellationPolicy,\r\nCustomerCommunication,\r\nCustomerSignature,\r\nDuplicateChargeDocumentation,\r\nUncategorizedFile,",
            "nullable": true
          },
          "blob": {
            "type": "string",
            "description": "A blob with a SAS token. There is no assumption where this is hosted.",
            "format": "uri",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "description": "Setting a filename if it's not the same as the blob.",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "description": "Indicate the content type of the blob. application/pdf etc.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Dispute Id - identifier of this dispute.",
            "format": "uuid"
          },
          "externalDisputeId": {
            "type": "string",
            "description": "External Party Dispute Id - informational.",
            "nullable": true
          },
          "disputedAmount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "isChargeRefundable": {
            "type": "boolean",
            "description": "If true, it is still possible to refund the disputed payment. Once the payment\r\nhas been fully refunded, no further funds will be withdrawn from your Stripe\r\naccount as a result of this dispute."
          },
          "evidenceDueOn": {
            "type": "string",
            "description": "Date by which evidence must be submitted in order to successfully challenge dispute.\r\nWill be null if the customer's bank or credit card company doesn't allow a response\r\nfor this particular dispute.",
            "format": "date-time",
            "nullable": true
          },
          "disputedOn": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "description": "A value like:\r\nNeedsResponse\r\nLost = 0\r\nWaived = 1 (not returned from merchants.api)\r\nWon = 2\r\nUnderReview = 3\r\nClosed = 4\r\nWonPartially = 5\r\nInternal = 6\r\nBelowThreshold = 7",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "A value like:\r\nBankCannotProcess = 0,\r\nCheckReturned = 1,\r\nCreditNotProcessed = 2,\r\nCustomerInitiated = 3,\r\nDebitNotAuthorized = 4,\r\nDuplicate = 5,\r\nFraudulent = 6,\r\nGeneral = 7,\r\nIncorrectAccountDetails = 8,\r\nInsufficientFunds = 9,\r\nProductNotReceived = 10,\r\nProductUnacceptable = 11,\r\nSubscriptionCanceled = 12,\r\nUnrecognized = 13,",
            "nullable": true
          },
          "evidence": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidence"
          },
          "orderId": {
            "type": "string",
            "format": "uuid"
          },
          "orderNumber": {
            "type": "string",
            "nullable": true
          },
          "customerFirstName": {
            "type": "string",
            "nullable": true
          },
          "customerLastName": {
            "type": "string",
            "nullable": true
          },
          "customerEmail": {
            "type": "string",
            "nullable": true
          },
          "issuerEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeIssuerEvidence"
            },
            "nullable": true
          },
          "orderAmount": {
            "type": "number",
            "format": "double"
          },
          "orderDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "disputeFeeAmount": {
            "type": "number",
            "format": "double"
          },
          "reinstatedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "settledOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "evidenceSubmittedOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "acceptedOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paymentProcessorUnavailable": {
            "type": "boolean"
          },
          "orderMerchantReference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidence": {
        "type": "object",
        "properties": {
          "receipt": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "refundPolicy": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "refundPolicyDisclosure": {
            "type": "string",
            "description": "Documentation demonstrating that the customer was shown your refund policy prior\r\nto purchase.",
            "nullable": true
          },
          "refundRefusalExplanation": {
            "type": "string",
            "description": "A justification for why the customer is not entitled to a refund.",
            "nullable": true
          },
          "serviceDate": {
            "type": "string",
            "description": "The date on which the customer received or began receiving the purchased service,\r\nin a clear human-readable format.",
            "nullable": true
          },
          "serviceDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "shippingAddress": {
            "type": "string",
            "description": "The address to which a physical product was shipped. You should try to include\r\nas complete address information as possible.",
            "nullable": true
          },
          "shippingCarrier": {
            "type": "string",
            "description": "The delivery service that shipped a physical product, such as Fedex, UPS, USPS,\r\netc. If multiple carriers were used for this purchase, please separate them with\r\ncommas.",
            "nullable": true
          },
          "shippingDate": {
            "type": "string",
            "description": "The date on which a physical product began its route to the shipping address,\r\nin a clear human-readable format.",
            "nullable": true
          },
          "shippingDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "shippingTrackingNumber": {
            "type": "string",
            "description": "The tracking number for a physical product, obtained from the delivery service.\r\nIf multiple tracking numbers were generated for this purchase, please separate\r\nthem with commas.",
            "nullable": true
          },
          "uncategorizedFile": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "productDescription": {
            "type": "string",
            "description": "A description of the product or service that was sold.",
            "nullable": true
          },
          "duplicateChargeExplanation": {
            "type": "string",
            "description": "An explanation of the difference between the disputed charge versus the prior\r\ncharge that appears to be a duplicate.",
            "nullable": true
          },
          "accessActivityLog": {
            "type": "string",
            "description": "Any server or activity logs showing proof that the customer accessed or downloaded\r\nthe purchased digital product. This information should include IP addresses,\r\ncorresponding timestamps, and any detailed recorded activity.",
            "nullable": true
          },
          "billingAddress": {
            "type": "string",
            "description": "The billing address provided by the customer.",
            "nullable": true
          },
          "cancellationPolicy": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "cancellationPolicyDisclosure": {
            "type": "string",
            "description": "An explanation of how and when the customer was shown your refund policy prior\r\nto purchase.",
            "nullable": true
          },
          "cancellationRebuttal": {
            "type": "string",
            "description": "A justification for why the customer's subscription was not canceled.",
            "nullable": true
          },
          "customerCommunication": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "customerEmailAddress": {
            "type": "string",
            "description": "The email address of the customer.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "The name of the customer.",
            "nullable": true
          },
          "customerPurchaseIp": {
            "type": "string",
            "description": "The IP address that the customer used when making the purchase.",
            "nullable": true
          },
          "customerSignature": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "duplicateChargeDocumentation": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
          },
          "duplicateChargeId": {
            "type": "string",
            "description": "The payment ID for the prior charge which appears to be a duplicate of the disputed\r\ncharge.",
            "nullable": true
          },
          "uncategorizedText": {
            "type": "string",
            "description": "Any additional evidence or statements.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the object.",
            "nullable": true
          },
          "created": {
            "type": "string",
            "description": "Time at which the object was created. Measured in seconds since the Unix epoch.",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "description": "The time at which the file expires and is no longer available in epoch seconds.",
            "format": "date-time",
            "nullable": true
          },
          "filename": {
            "type": "string",
            "description": "A filename for the file, suitable for saving to a filesystem.",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "File category for dispute evidence.\r\nReceipt,\r\nRefundPolicy,\r\nServiceDocumentation,\r\nShippingDocumentation,\r\nCancellationPolicy,\r\nCustomerCommunication,\r\nCustomerSignature,\r\nDuplicateChargeDocumentation,\r\nUncategorizedFile,",
            "nullable": true
          },
          "size": {
            "type": "integer",
            "description": "The size in bytes of the file object.",
            "format": "int64"
          },
          "title": {
            "type": "string",
            "description": "A user friendly title for the document.",
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "The type of the file returned (e.g., csv, pdf, jpg, or png).",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeIssuerEvidence": {
        "type": "object",
        "properties": {
          "evidenceType": {
            "type": "string",
            "description": "Type of issuer evidence supplied.\r\nRetrieval,\r\nChargeback,\r\nResponse,",
            "nullable": true
          },
          "textEvidence": {
            "type": "string",
            "description": "Free-form, text-based issuer evidence.",
            "nullable": true
          },
          "fileEvidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail+DisputeEvidenceFile"
            },
            "description": "(Expanded)\r\nList of up to 5 (ID of a file upload) File-based issuer evidence.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.DisputeResult": {
        "type": "object",
        "properties": {
          "disputeDetail": {
            "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.DisputeDetail"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.SearchDisputeResult": {
        "type": "object",
        "properties": {
          "value": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantDisputes.Models.SearchDisputeResult+DisputeItem"
            },
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantDisputes.Models.SearchDisputeResult+DisputeItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Dispute Id - identifier of this dispute.",
            "format": "uuid"
          },
          "externalDisputeId": {
            "type": "string",
            "description": "External Party Dispute Id - informational.",
            "nullable": true
          },
          "customerFirstName": {
            "type": "string",
            "nullable": true
          },
          "customerLastName": {
            "type": "string",
            "nullable": true
          },
          "paymentPlanId": {
            "type": "string",
            "format": "uuid"
          },
          "orderNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "description": "A value like:\r\nNeedsResponse\r\nLost = 0\r\nWaived = 1 (not returned from merchants.api)\r\nWon = 2\r\nUnderReview = 3\r\nClosed = 4\r\nWonPartially = 5\r\nInternal = 6\r\nBelowThreshold = 7",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "description": "A value like:\r\nBankCannotProcess = 0,\r\nCheckReturned = 1,\r\nCreditNotProcessed = 2,\r\nCustomerInitiated = 3,\r\nDebitNotAuthorized = 4,\r\nDuplicate = 5,\r\nFraudulent = 6,\r\nGeneral = 7,\r\nIncorrectAccountDetails = 8,\r\nInsufficientFunds = 9,\r\nProductNotReceived = 10,\r\nProductUnacceptable = 11,\r\nSubscriptionCanceled = 12,\r\nUnrecognized = 13,",
            "nullable": true
          },
          "disputedOn": {
            "type": "string",
            "format": "date-time"
          },
          "evidenceDueOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "settledOn": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "disputedAmount": {
            "type": "number",
            "format": "double"
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "orderAmount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantSettlements.Models.InvoicesSearchResult": {
        "type": "object",
        "properties": {
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantSettlements.Models.SettlementReportTransaction"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantSettlements.Models.SettlementReportInvoice": {
        "type": "object",
        "properties": {
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "openDate": {
            "type": "string",
            "format": "date-time"
          },
          "closeDate": {
            "type": "string",
            "format": "date-time"
          },
          "amountSigned": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "transferStatus": {
            "type": "string",
            "nullable": true
          },
          "disbursementDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "transferReference": {
            "type": "string",
            "nullable": true
          },
          "transferProcessor": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantSettlements.Models.SettlementReportTransaction": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "merchantName": {
            "type": "string",
            "nullable": true
          },
          "transactionType": {
            "type": "string",
            "nullable": true
          },
          "amountSigned": {
            "type": "number",
            "format": "double"
          },
          "taxAmountSigned": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "disbursementDateUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "orderDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "merchantOrderReference": {
            "type": "string",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "transactionDateTimeUtc": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "product": {
            "type": "string",
            "nullable": true
          },
          "merchantTransactionReference": {
            "type": "string",
            "nullable": true
          },
          "invoiceNumber": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.MerchantSettlements.Models.TransactionsSearchResult": {
        "type": "object",
        "properties": {
          "invoices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.MerchantSettlements.Models.SettlementReportInvoice"
            },
            "nullable": true
          },
          "totalCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Commands.AssociateMerchantPlatformIdToOrder+Command": {
        "type": "object",
        "properties": {
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the merchant's reference number of the order.",
            "nullable": true
          },
          "merchantPlatformId": {
            "type": "string",
            "description": "Gets or sets the ID to associate to the order.",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "description": "Gets or sets the OrderId of the order to look up",
            "format": "uuid",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.LineItem"
            },
            "description": "Gets or sets the line items to add to the order.",
            "nullable": true
          },
          "attemptRetries": {
            "type": "boolean",
            "description": "Gets or sets messaging library retries if the order is not found"
          }
        },
        "additionalProperties": false,
        "description": "Command used to associated a merchant's platform ID to a previously completed order."
      },
      "QuadPay.Gateway.Orders.Commands.AuthorizeOrder": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the unique ID to use for order creation",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the merchant Id.",
            "format": "uuid"
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderAuthorizeOrder"
          },
          "shippingPreference": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference"
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "capture": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this order should be immediately captured."
          },
          "redirectCancelUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "nullable": true
          },
          "redirectConfirmUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata attached to the checkout.",
            "nullable": true
          },
          "checkoutFlow": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.CheckoutFlow"
          },
          "entrySource": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.EntrySource"
          },
          "merchantUrl": {
            "type": "string",
            "description": "Gets or sets the merchant's url",
            "nullable": true
          },
          "returnToMerchant": {
            "type": "boolean",
            "description": "Gets or sets a boolean dictating if the Zip Checkout will redirect back to the merchant checkout on completion"
          },
          "tokenizerSubdomain": {
            "type": "string",
            "description": "Gets or sets a string assigning the tokenizer subdomain, if applicable. For merchants that use tokenizer gateways, such as CardConnect.com\r\nwill have a custom subdomain, i.e. http://{site}.cardconnect.com, that is used to perform callbacks and/or to tokenize the PAN data for the\r\nvirtual purchase. The tokenizer subdomain is set on the QuadPay button and retained through the callback so that virtual checkout can\r\nformulate an API URL for the merchants tokenizer gateway.",
            "nullable": true
          },
          "additionalData": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AdditionalRiskData"
          },
          "publicKey": {
            "type": "string",
            "nullable": true
          },
          "sdkSource": {
            "type": "string",
            "description": "Gets or sets the SDK source for this order, used to distinguish traffic origin in telemetry.",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the unique merchant reference for this authorization.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          },
          "brandName": {
            "type": "string",
            "description": "Gets or sets the brand name of the merchant for this order.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the status callback url.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Authorizes the creation of an order in the QuadPay system."
      },
      "QuadPay.Gateway.Orders.Commands.CalculateMerchantFees+Command": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency for Merchant Fee For Payment Plan",
            "nullable": true
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the Id of the merchant to calculate fees for",
            "format": "uuid"
          },
          "customerState": {
            "type": "string",
            "description": "Gets or sets the customer's state for their shipping address.",
            "nullable": true
          },
          "customerCountry": {
            "type": "string",
            "description": "Gets or sets the customer's country for their shipping address.  Defaults to \"US\".",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the amount of the order to calculate fees for.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Commands.CalculateMerchantFees+Result": {
        "type": "object",
        "properties": {
          "merchantFeeForPaymentPlan": {
            "type": "number",
            "description": "Gets or sets the fee to be added for Merchant Fee For Payment Plan",
            "format": "double"
          },
          "adjustedOrderAmount": {
            "type": "number",
            "description": "Gets or sets the adjusted order amount after Merchant Fee For Payment Plan",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency Merchant Fee For Payment Plan was calculated in",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Commands.CaptureOrder+Command": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the Id of the Order.",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the Currency of the capture.",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the Amount of the capture.",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the Merchant Reference of the capture.",
            "nullable": true
          },
          "merchantPlatformId": {
            "type": "string",
            "description": "Gets or sets the Merchant Platform ID of the capture.",
            "nullable": true
          },
          "singleCapture": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether or not the order will only be captured once.\r\nIn that case if the capture value is less than the order value, the remainder will be voided."
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the url to callback with the capture result.",
            "nullable": true
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata associated with this capture.",
            "nullable": true
          },
          "isSync": {
            "type": "boolean",
            "description": "Get or sets a flag indicating whether or not to invoke this operation synchronously. Set to false by default."
          }
        },
        "additionalProperties": false,
        "description": "Used to capture the funds on an order that is denoted as deferred fund capture/pay-on-ship."
      },
      "QuadPay.Gateway.Orders.Commands.ConfirmOrder+Command": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the Id of the Order.",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets an optional final amount, including tax and shipping, of the order to be confirmed.\r\nIf not supplied, the original order amount will be used.",
            "format": "double",
            "nullable": true
          },
          "shippingAmount": {
            "type": "number",
            "description": "Gets or sets the optional shipping amount associated with the order.",
            "format": "double",
            "nullable": true
          },
          "taxAmount": {
            "type": "number",
            "description": "Gets or sets? the optional tax amount associated with the order.",
            "format": "double",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the Merchant Reference of the confirmation.",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the url to callback with the confirm result.",
            "nullable": true
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "capture": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether or not the order should be captured immediately after confirmation"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata associated with this confirmation.",
            "nullable": true
          },
          "isSync": {
            "type": "boolean",
            "description": "Get or sets a flag indicating whether or not to invoke this operation synchronously. Set to false by default."
          }
        },
        "additionalProperties": false,
        "description": "Used to confirm a previously authorized order and start the payment plan."
      },
      "QuadPay.Gateway.Orders.Commands.RefundOrder+Command": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the Id of the Order.",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the Currency of the refund.",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the Amount of the refund.",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the Merchant Reference of the refund.",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the url to callback with the refund result.",
            "nullable": true
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata associated with this refund.",
            "nullable": true
          },
          "isSync": {
            "type": "boolean",
            "description": "Get or sets a flag indicating whether or not to invoke this operation synchronously. Set to false by default."
          },
          "merchantPlatformId": {
            "type": "string",
            "description": "Gets or sets the Merchant Platform ID of the capture.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Used to refund the uncaptured funds on an order that is denoted as deferred fund capture/pay-on-ship."
      },
      "QuadPay.Gateway.Orders.Commands.VoidOrder+Command": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the Id of the Order.",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId.",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the Currency of the void.",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the Amount of the void.",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the Merchant Reference of the void.",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the url to callback with the void result.",
            "nullable": true
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata associated with this void.",
            "nullable": true
          },
          "isSync": {
            "type": "boolean",
            "description": "Get or sets a flag indicating whether or not to invoke this operation synchronously. Set to false by default."
          },
          "isAmountInCommand": {
            "type": "boolean",
            "description": "Gets or sets a flag indicating whether or not the command amount is set and not defaulted. By default, the\r\nvoid amount is included in the command."
          },
          "merchantPlatformId": {
            "type": "string",
            "description": "Gets or sets the Merchant Platform ID of the capture.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.AdditionalRiskData": {
        "type": "object",
        "properties": {
          "lastTransactionDate": {
            "type": "string",
            "description": "The date of the customer's last transaction on a merchant's site.",
            "format": "date-time",
            "nullable": true
          },
          "accountCreationDate": {
            "type": "string",
            "description": "The date the customer's account was created on a merchant's site.",
            "format": "date-time",
            "nullable": true
          },
          "customerLoggedIn": {
            "type": "boolean",
            "description": "Indicates whether the customer is currently logged on a merchant's site.",
            "nullable": true
          },
          "customerIsMember": {
            "type": "boolean",
            "description": "Indicates whether the customer is a member of the merchant's site.",
            "nullable": true
          },
          "merchantRiskAssessment": {
            "type": "string",
            "description": "The risk assessment score for the merchant.",
            "nullable": true
          },
          "sameDevice": {
            "type": "boolean",
            "description": "Indicates whether the transaction was performed from the same device.",
            "nullable": true
          },
          "fulfillmentMethod": {
            "type": "string",
            "description": "The method used to fulfill the order on a merchant's site.",
            "nullable": true
          },
          "customerTransactionCount": {
            "type": "integer",
            "description": "The total number of transactions made by the customer on a merchant's site.",
            "format": "int32",
            "nullable": true
          },
          "customerAverageOrderValue": {
            "type": "string",
            "description": "The average order value of the customer's transactions on a merchant's site.\r\nExample format: 123.45 or 123",
            "nullable": true
          },
          "customerFraudIncidents": {
            "type": "boolean",
            "description": "Indicates whether the customer has previous fraud incidents.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Additional Data Fields Are optional customer info fields from merchant"
      },
      "QuadPay.Gateway.Orders.Models.AddOn": {
        "type": "object",
        "properties": {
          "merchant": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOnMerchant"
          },
          "chargeId": {
            "type": "string",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOnType"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.AddOnMerchant": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "merchantName": {
            "type": "string",
            "nullable": true
          },
          "bankPartner": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.BankPartner"
          },
          "merchantNameRegex": {
            "type": "string",
            "description": "Don't need to include this in a token.\r\nThis is only used when creating a virtual purchase at the end of the flow.",
            "nullable": true
          },
          "merchantNetworkRegex": {
            "type": "string",
            "description": "Don't need to include this in a token.\r\nThis is only used when creating a virtual purchase at the end of the flow.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.AddOnRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "orderId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOnType"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.AddOnType": {
        "enum": [
          "ticketInsurance"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Orders.Models.Address": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "description": "Gets or sets the first address line.",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "description": "Gets or sets the second address line.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "Gets or sets the city.",
            "nullable": true
          },
          "state": {
            "type": "string",
            "description": "Gets or sets the state or province.",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Gets or sets the postal code.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Gets or sets the country.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates a physical address."
      },
      "QuadPay.Gateway.Orders.Models.CheckoutFlow": {
        "enum": [
          "standard",
          "express",
          "longDurationLending"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Orders.Models.EntrySource": {
        "enum": [
          "unknown",
          "secondChance",
          "zipButton",
          "merchantButton",
          "googlePayOnline",
          "googlePayApp",
          "checkoutAnywhereApi",
          "usPartnerPlatform"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Orders.Models.LineItem": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Gets or sets a description about the item being purchased.",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Gets or sets the name of the item being purchased.",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "description": "Gets or sets the quantity of the items being purchased.",
            "format": "int32",
            "nullable": true
          },
          "price": {
            "type": "number",
            "description": "Gets or sets the price of a single item.",
            "format": "double",
            "nullable": true
          },
          "sku": {
            "type": "string",
            "description": "Gets or sets the SKU identifier of the item being purchased.",
            "nullable": true
          },
          "isPreOrder": {
            "type": "boolean",
            "description": "Gets or sets the flag indicating whether or not this item will be included in a preorder"
          },
          "releaseDate": {
            "type": "string",
            "description": "Gets or sets the date a preorder order will be shipped",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Encapsulates the items that comprise an order for a customer."
      },
      "QuadPay.Gateway.Orders.Models.Order": {
        "type": "object",
        "properties": {
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOn"
            },
            "description": "Gets or sets the AddOns that are apart of this order",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "Gets or sets the customer's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the customer's last name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the customer's email address.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the customer's phone number.",
            "nullable": true
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency the order amount is in (defaults to TerritorySettings).",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the order amount.  This includes the tax and shipping amounts.",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "description": "Gets or sets the optional tax amount.",
            "format": "double",
            "nullable": true
          },
          "shippingAmount": {
            "type": "number",
            "description": "Gets or sets the optional shipping amount.",
            "format": "double",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.LineItem"
            },
            "description": "Gets or sets the optional line items of what the user is purchasing.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets a description for the order.",
            "nullable": true
          },
          "orderNumber": {
            "type": "string",
            "description": "Gets or sets the QuadPay order number.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.OrderAuthorizeOrder": {
        "type": "object",
        "properties": {
          "addOns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AddOnRequest"
            },
            "description": "Gets or sets the AddOnRequest that are apart of this order",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "description": "Gets or sets the customer's first name.",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Gets or sets the customer's last name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Gets or sets the customer's email address.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Gets or sets the customer's phone number.",
            "nullable": true
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "currency": {
            "type": "string",
            "description": "Gets or sets the currency the order amount is in (defaults to TerritorySettings).",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "description": "Gets or sets the order amount.  This includes the tax and shipping amounts.",
            "format": "double"
          },
          "taxAmount": {
            "type": "number",
            "description": "Gets or sets the optional tax amount.",
            "format": "double",
            "nullable": true
          },
          "shippingAmount": {
            "type": "number",
            "description": "Gets or sets the optional shipping amount.",
            "format": "double",
            "nullable": true
          },
          "lineItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.LineItem"
            },
            "description": "Gets or sets the optional line items of what the user is purchasing.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Gets or sets a description for the order.",
            "nullable": true
          },
          "orderNumber": {
            "type": "string",
            "description": "Gets or sets the QuadPay order number.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.OrderDetailSummary": {
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/QuadPay.Domain.Core.Enums.CurrencyCode"
          },
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "merchantName": {
            "type": "string",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "orderId": {
            "type": "string",
            "format": "uuid"
          },
          "orderDateTime": {
            "type": "string",
            "format": "date-time"
          },
          "orderAmount": {
            "type": "number",
            "format": "double"
          },
          "paymentScheduleType": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Google.Models.PaymentScheduleType"
          },
          "refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.CustomerPortal.Models.Refund"
            },
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/QuadPay.Gateway.CustomerPortal.Models.OrderDetailStatus"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.OrderOperationResponse": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "orderId": {
            "type": "string",
            "format": "uuid"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "test": {
            "type": "boolean"
          },
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          },
          "operation": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.PaymentScheduleSummary": {
        "type": "object",
        "properties": {
          "installmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "installmentIntervalDays": {
            "type": "integer",
            "format": "int32"
          },
          "minimumOrderAmount": {
            "type": "number",
            "format": "double"
          },
          "maximumOrderAmount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.ShippingPreference": {
        "type": "object",
        "properties": {
          "allowedShippingLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
            },
            "description": "List of states/countries the merchant will ship to.",
            "nullable": true
          },
          "deniedShippingLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
            },
            "description": "List of states/countries the merchant will not ship to.",
            "nullable": true
          },
          "deniedPOBoxShippingLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation"
            },
            "description": "List of states/countries with PO Boxes the merchant will not ship to",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Models.ShippingPreference+ShippingLocation": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Will help us identify if merchants want to ship or not ship to a location."
      },
      "QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Command": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the merchant ID.",
            "format": "uuid"
          },
          "customer": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Models.CustomerDetails"
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Models.OrderDetails"
          },
          "consentTimestamp": {
            "type": "string",
            "format": "date-time"
          },
          "forceNewCustomer": {
            "type": "boolean",
            "description": "Determines whether a new customer id should be created against the phone number\r\n(For non-production environments only)"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+InstallmentResult": {
        "type": "object",
        "properties": {
          "sequenceNumber": {
            "type": "integer",
            "format": "int32"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "totalAmountIncludingFees": {
            "type": "number",
            "format": "double"
          },
          "feeAmount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents an installment in a payment plan"
      },
      "QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+PaymentPlanResult": {
        "type": "object",
        "properties": {
          "installmentCount": {
            "type": "integer",
            "format": "int32"
          },
          "installmentIntervalDays": {
            "type": "integer",
            "format": "int32"
          },
          "installments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+InstallmentResult"
            },
            "nullable": true
          },
          "downPaymentAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a payment plan available for the pre-qualification"
      },
      "QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+Result": {
        "type": "object",
        "properties": {
          "customerPortalUrl": {
            "type": "string",
            "nullable": true
          },
          "maxApprovedAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "requestedAmount": {
            "type": "number",
            "format": "double"
          },
          "disclosure": {
            "type": "string",
            "nullable": true
          },
          "preQualificationStatus": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.PreQualifications.Models.PreQualificationStatus"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "availablePaymentPlans": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.PreQualifications.Commands.AssessPreQualification+PaymentPlanResult"
            },
            "description": "Available payment plans details for approved pre-qualifications",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Commands.InitializePreQualification": {
        "type": "object",
        "properties": {
          "preQualificationId": {
            "type": "string",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Models.CustomerDetails": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.Address"
          },
          "ipAddress": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Models.OrderDetails": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Queries.GetPreQualification+Result": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.PreQualifications.Models.PreQualificationStatus"
          },
          "customer": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.PreQualifications.Models.Customer"
          },
          "shouldBypassSignup": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Results.InitializePreQualificationResult": {
        "type": "object",
        "properties": {
          "preQualificationId": {
            "type": "string",
            "format": "uuid"
          },
          "redirectTo": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.PreQualifications.Results.LinkPreQualificationResult": {
        "type": "object",
        "properties": {
          "preQualificationId": {
            "type": "string",
            "format": "uuid"
          },
          "rulesPassed": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.PreQualifications.Models.PreQualificationRule"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.GetOrderById+Query": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the OrderId",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId - nullable for backward compatibility with Google",
            "format": "uuid",
            "nullable": true
          },
          "shouldEnforceMerchantIdValidation": {
            "type": "boolean",
            "description": "Gets or sets whether to enforce merchant ID validation\r\nWhen true, MerchantId must be provided and will be passed to Customer Portal BFF\r\nWhen false, requests work without MerchantId (Google compatibility)"
          }
        },
        "additionalProperties": false,
        "description": "Used to retrieve the details of an Order"
      },
      "QuadPay.Gateway.Orders.Queries.GetOrderById+Result": {
        "type": "object",
        "properties": {
          "moreInfoUrl": {
            "type": "string",
            "nullable": true
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderDetailSummary"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Query": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "description": "Gets or sets the CustomerId",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the MerchantId",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Used to retrieve orders for a customer"
      },
      "QuadPay.Gateway.Orders.Queries.GetOrdersByCustomerId+Result": {
        "type": "object",
        "properties": {
          "moreInfoUrl": {
            "type": "string",
            "nullable": true
          },
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderDetailSummary"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "orderStatus": {
            "type": "string",
            "nullable": true
          },
          "orderNumber": {
            "type": "string",
            "nullable": true
          },
          "customerAuthorizationStatus": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currencyCode": {
            "type": "string",
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail+OrderCustomer"
          },
          "shippingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail+OrderAddress"
          },
          "billingAddress": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail+OrderAddress"
          },
          "merchantReference": {
            "type": "string",
            "nullable": true
          },
          "merchantPlatformId": {
            "type": "string",
            "nullable": true
          },
          "taxAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "shippingAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "totalFundsCaptured": {
            "type": "number",
            "format": "double"
          },
          "totalFundsVoided": {
            "type": "number",
            "format": "double"
          },
          "totalFundsRefunded": {
            "type": "number",
            "format": "double"
          },
          "createdDateTime": {
            "type": "string",
            "format": "date-time"
          },
          "customerContribution": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail+OrderAddress": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.RetrieveOrderDetail+OrderDetail+OrderCustomer": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Orders.Queries.RetrieveOrderStatus+Result": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the order ID.",
            "format": "uuid"
          },
          "orderStatus": {
            "type": "string",
            "description": "Gets or sets the Order Status.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Payments.Queries.GetMerchantPaymentsExport+Query`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "enum": [
          "dateAsc",
          "dateDesc"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Persistence.Merchants.ReadModel.Models.ScheduleOptions": {
        "type": "object",
        "properties": {
          "installmentFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "isScheduleEnabled": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Persistence.PreQualifications.Models.Address": {
        "type": "object",
        "properties": {
          "line1": {
            "type": "string",
            "nullable": true
          },
          "line2": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Persistence.PreQualifications.Models.Customer": {
        "required": [
          "address"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "dateOfBirth": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Persistence.PreQualifications.Models.Address"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Persistence.PreQualifications.Models.PreQualificationRule": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Persistence.PreQualifications.Models.PreQualificationStatus": {
        "enum": [
          "approved",
          "declined",
          "continue",
          "limitExceeded"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Promotions.Models.PromotionBanner": {
        "type": "object",
        "properties": {
          "promoAvailableHeader": {
            "type": "string",
            "nullable": true
          },
          "promoAvailableSubtitle": {
            "type": "string",
            "nullable": true
          },
          "promoAppliedHeader": {
            "type": "string",
            "nullable": true
          },
          "promoAppliedSubtitle": {
            "type": "string",
            "nullable": true
          },
          "displayMoreInfoButtonText": {
            "type": "string",
            "nullable": true
          },
          "hideMoreInfoButtonText": {
            "type": "string",
            "nullable": true
          },
          "termsAndConditionsUs": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Promotions.Models.PromotionInfo": {
        "type": "object",
        "properties": {
          "banner": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Promotions.Models.PromotionBanner"
          },
          "hasPromotion": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Promotions.Models.PromotionTokenContext": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "promotionName": {
            "type": "string",
            "nullable": true
          },
          "discountAmount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Query": {
        "type": "object",
        "properties": {
          "checkoutToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Promotions.Queries.GetEligiblePromotionsCustomerRequest+Result": {
        "type": "object",
        "properties": {
          "discountAmount": {
            "type": "number",
            "format": "double"
          },
          "promotionToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.ShopifyPayments.Testing.Models.RequestType": {
        "enum": [
          "authorization",
          "capture",
          "refund",
          "void"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Transactions.Queries.BaseSearchMerchantTransactions+BaseQuery`1+OrderByEnum[[System.IO.Stream, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]": {
        "enum": [
          "dateAsc",
          "dateDesc"
        ],
        "type": "string"
      },
      "QuadPay.Gateway.Virtual.Commands.AuthorizeVirtualApiCommand": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the unique ID to use for order creation",
            "format": "uuid"
          },
          "merchantId": {
            "type": "string",
            "description": "Gets or sets the merchant Id.",
            "format": "uuid"
          },
          "order": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.OrderAuthorizeOrder"
          },
          "shippingPreference": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.ShippingPreference"
          },
          "test": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this is a test order."
          },
          "capture": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether this order should be immediately captured."
          },
          "redirectCancelUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to if they cancel the checkout.",
            "nullable": true
          },
          "redirectConfirmUrl": {
            "type": "string",
            "description": "Gets or sets the url that the user will be redirected to after they have completed the checkout.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Gets or sets optional metadata attached to the checkout.",
            "nullable": true
          },
          "checkoutFlow": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.CheckoutFlow"
          },
          "entrySource": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.EntrySource"
          },
          "merchantUrl": {
            "type": "string",
            "description": "Gets or sets the merchant's url",
            "nullable": true
          },
          "returnToMerchant": {
            "type": "boolean",
            "description": "Gets or sets a boolean dictating if the Zip Checkout will redirect back to the merchant checkout on completion"
          },
          "tokenizerSubdomain": {
            "type": "string",
            "description": "Gets or sets a string assigning the tokenizer subdomain, if applicable. For merchants that use tokenizer gateways, such as CardConnect.com\r\nwill have a custom subdomain, i.e. http://{site}.cardconnect.com, that is used to perform callbacks and/or to tokenize the PAN data for the\r\nvirtual purchase. The tokenizer subdomain is set on the QuadPay button and retained through the callback so that virtual checkout can\r\nformulate an API URL for the merchants tokenizer gateway.",
            "nullable": true
          },
          "additionalData": {
            "$ref": "#/components/schemas/QuadPay.Gateway.Orders.Models.AdditionalRiskData"
          },
          "publicKey": {
            "type": "string",
            "nullable": true
          },
          "sdkSource": {
            "type": "string",
            "description": "Gets or sets the SDK source for this order, used to distinguish traffic origin in telemetry.",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the unique merchant reference for this authorization.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          },
          "brandName": {
            "type": "string",
            "description": "Gets or sets the brand name of the merchant for this order.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          },
          "callbackUrl": {
            "type": "string",
            "description": "Gets or sets the status callback url.\r\nPlaced after SdkSource to avoid blocking TelemetryTracingBehavior iteration when null.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Virtual.Models.AuthorizeVirtualApiResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "Gets or sets the order ID for this order authorization.",
            "format": "uuid"
          },
          "redirectTo": {
            "type": "string",
            "description": "Gets or sets the redirect url.",
            "nullable": true
          },
          "merchantReference": {
            "type": "string",
            "description": "Gets or sets the Merchant Reference.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QuadPay.Gateway.Virtual.Models.VirtualCardDeliveryMethod": {
        "enum": [
          "jsBridge",
          "encryptedAndSignedToken",
          "webProvisioning",
          "encryptedToken"
        ],
        "type": "string",
        "description": "How the card will be delivered to the merchant."
      },
      "System.IO.Stream": {
        "type": "object",
        "properties": {
          "canRead": {
            "type": "boolean",
            "readOnly": true
          },
          "canWrite": {
            "type": "boolean",
            "readOnly": true
          },
          "canSeek": {
            "type": "boolean",
            "readOnly": true
          },
          "canTimeout": {
            "type": "boolean",
            "readOnly": true
          },
          "length": {
            "type": "integer",
            "format": "int64",
            "readOnly": true
          },
          "position": {
            "type": "integer",
            "format": "int64"
          },
          "readTimeout": {
            "type": "integer",
            "format": "int32"
          },
          "writeTimeout": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.CaptureChargeRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "is_partial_capture": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeAddress": {
        "type": "object",
        "properties": {
          "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
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeAuthority": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeBillingAddress": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "nullable": true
          },
          "last_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
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeCustomer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeOrder": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string",
            "nullable": true
          },
          "merchant_fee_for_payment_plan": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "shipping": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeShipping"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeOrderItem"
            },
            "nullable": true
          },
          "platform_reference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeOrderItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "item_uri": {
            "type": "string",
            "nullable": true
          },
          "image_uri": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "captured_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "refunded_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "created_date": {
            "type": "string",
            "nullable": true
          },
          "interest_free_months": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "receipt_number": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "product": {
            "type": "string",
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeCustomer"
          },
          "customer_contribution": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeShipping": {
        "type": "object",
        "properties": {
          "pickup": {
            "type": "boolean",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeAddress"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.ChargeShopper": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "nullable": true
          },
          "middle_name": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "birthdate": {
            "type": "string",
            "nullable": true
          },
          "billing_address": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeBillingAddress"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.CheckoutState": {
        "enum": [
          "created",
          "approved",
          "completed",
          "expired"
        ],
        "type": "string"
      },
      "Zip.Gateway.USPartnerPlatform.Models.CreateChargeRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "authority": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeAuthority"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "capture": {
            "type": "boolean",
            "nullable": true
          },
          "shopper": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeShopper"
          },
          "order": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeOrder"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutConfig": {
        "type": "object",
        "properties": {
          "redirect_uri": {
            "type": "string",
            "nullable": true
          },
          "expires_in": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "shopper": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeShopper"
          },
          "order": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeOrder"
          },
          "config": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutConfig"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "uri": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CheckoutState"
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.Disputes.DisputeAttachment": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.Disputes.GlobalDisputeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "merchant_id": {
            "type": "string",
            "nullable": true
          },
          "payment": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "transaction_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "open": {
            "type": "boolean"
          },
          "response_due_by": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "opened_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "opening_note": {
            "type": "string",
            "nullable": true
          },
          "customer_attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.DisputeAttachment"
            },
            "nullable": true
          },
          "merchant_attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.DisputeAttachment"
            },
            "nullable": true
          },
          "closed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "closing_reason": {
            "type": "string",
            "nullable": true
          },
          "closing_note": {
            "type": "string",
            "nullable": true
          },
          "transition_logs": {
            "type": "array",
            "items": { },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.Disputes.ListDisputesResponse": {
        "type": "object",
        "properties": {
          "dispute": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.Disputes.GlobalDisputeDto"
            },
            "nullable": true
          },
          "has_more": {
            "type": "boolean"
          },
          "starting_after": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.Disputes.SubmitEvidenceRequest": {
        "type": "object",
        "properties": {
          "shipping_carrier": {
            "type": "string",
            "nullable": true
          },
          "shipping_tracking_number": {
            "type": "string",
            "nullable": true
          },
          "billing_address": {
            "type": "string",
            "nullable": true
          },
          "customer_name": {
            "type": "string",
            "nullable": true
          },
          "customer_email_address": {
            "type": "string",
            "nullable": true
          },
          "customer_purchase_ip": {
            "type": "string",
            "nullable": true
          },
          "product_description": {
            "type": "string",
            "nullable": true
          },
          "shipping_address": {
            "type": "string",
            "nullable": true
          },
          "shipping_date": {
            "type": "string",
            "nullable": true
          },
          "service_date": {
            "type": "string",
            "nullable": true
          },
          "service_description": {
            "type": "string",
            "nullable": true
          },
          "access_activity_logs": {
            "type": "string",
            "nullable": true
          },
          "cancellation_policy_disclosure": {
            "type": "string",
            "nullable": true
          },
          "cancellation_rebuttal": {
            "type": "string",
            "nullable": true
          },
          "refund_policy_disclosure": {
            "type": "string",
            "nullable": true
          },
          "refund_refusal_explanation": {
            "type": "string",
            "nullable": true
          },
          "duplicate_charge_id": {
            "type": "string",
            "nullable": true
          },
          "duplicate_charge_explanation": {
            "type": "string",
            "nullable": true
          },
          "uncategorized_text": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.Disputes.UploadFileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.GetChargeResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "captured_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "refunded_amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "created_date": {
            "type": "string",
            "nullable": true
          },
          "customer": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeCustomer"
          },
          "receipt_number": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "product": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.GetCheckoutResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "shopper": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeShopper"
          },
          "order": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.ChargeOrder"
          },
          "metadata": {
            "nullable": true
          },
          "config": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CreateCheckoutConfig"
          },
          "state": {
            "$ref": "#/components/schemas/Zip.Gateway.USPartnerPlatform.Models.CheckoutState"
          },
          "created": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.RefundChargeRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "reference": {
            "type": "string",
            "nullable": true
          },
          "reason": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Zip.Gateway.USPartnerPlatform.Models.VoidChargeRequest": {
        "type": "object",
        "properties": {
          "merchantId": {
            "type": "string",
            "format": "uuid"
          },
          "reference": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "oauth2",
        "description": "Please insert JWT with Bearer into field",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://login-dev.quadpay.com/authorize",
            "scopes": { }
          }
        }
      }
    }
  }
}