{
  "openapi": "3.0.3",
  "info": {
    "title": "Belle API",
    "version": "1.0.0 (sponsor_consumer_v1)"
  },
  "paths": {
    "/api/v1/sponsor/consumers/accounts/cancel/": {
      "post": {
        "operationId": "Consumer_Account_Cancel",
        "description": "Endpoint to cancel a consumer account using external_application_id.\n\n**Requirements:**\n- Authentication is required; the sponsor/partner must provide valid credentials.\n- `external_application_id`: The external application ID must be provided in the request path to identify\nthe consumer account to cancel.\n- `request_user_id`: The user ID in the Momnt system must be included in the request payload. The user\nmust be active and previously established (e.g., via pre-onboarding or create_user).\n- Only users with appropriate permissions (Admin, Salesmanager, or the original Salesrep who sent\nthe invitation) may cancel the account.\n- If the consumer account has any activity (e.g., amount spent > 0), cancellation will be forbidden.\n- On success, the consumer account will be deactivated and the application status updated to \"Cancelled\".",
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerAccountCancel"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerAccountCancel"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerAccountCancel"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "detail": "Consumer account cancellation for invitation 12345."
                    }
                  }
                }
              }
            },
            "description": "Success response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "BadRequest": {
                    "value": {
                      "detail": "Invalid request data."
                    },
                    "summary": "Bad Request"
                  }
                }
              }
            },
            "description": "Bad Request - Invalid request data"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "Forbidden": {
                    "value": {
                      "detail": "Consumer account has activity and cannot be cancelled."
                    }
                  }
                }
              }
            },
            "description": "Forbidden - Consumer account has activity and cannot be cancelled"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "NotFound": {
                    "value": {
                      "detail": "Not found."
                    },
                    "summary": "Not Found"
                  }
                }
              }
            },
            "description": "Not Found - Consumer account or invitation not found"
          }
        },
        "callbacks": {
          "Consumer Account Cancel Callback": {
            "/sponsor_callback_url/": {
              "post": {
                "description": "**Consumer Account Cancel Callback (POST)**\n**Overview**\nAfter the loan cancellation is processed, Momnt will send a\ncallback to the sponsor_callback_url with details about the consumer's application.\n**Requirements**\n- A successful POST request must have been made to cancel the consumer account.\n- Basic authentication (username/password) is supported and pre-shared between Momnt and the sponsor.",
                "responses": {
                  "200": {
                    "description": "No response body"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sponsor/consumers/accounts/credit-line-increase/": {
      "post": {
        "operationId": "Consumer_Account_Credit_Line_Increase",
        "description": "Endpoint to initiate a credit line increase (CLI) for a consumer account.\n\n**Requirements:**\n- Authentication is required; the sponsor/partner must provide valid credentials.\n- `external_application_id`: The external application ID must be provided in the\nrequest payload to identify the consumer account.\n- `request_user_id`: The user ID in the Momnt system must be included in the request payload.\nThe user must be active and previously established.\n- `cli_amount`: The requested credit line increase amount. Must be greater than the current credit limit\nand less than or equal to the max approved amount.\n- Only users with appropriate permissions (Admin, Salesmanager, or the original Salesrep who sent\nthe invitation) may initiate a CLI.\n- The consumer application and account must be in good standing (not canceled, suspended, closed).\n- The consumer account must have a zero balance (amount spent = 0).\n- Only one CLI can be performed per account.\n- On success, the consumer account's credit limit will be updated and the application status will\nreflect the CLI request.",
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SponsorConsumerAccountCLIRequest"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/SponsorConsumerAccountCLIRequest"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/SponsorConsumerAccountCLIRequest"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "Success": {
                    "value": {
                      "detail": "Credit line increase successfully initiated."
                    }
                  }
                }
              }
            },
            "description": "Success response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "BadRequest": {
                    "value": {
                      "detail": "Invalid request data."
                    },
                    "summary": "Bad Request"
                  },
                  "IneligibleApplication": {
                    "value": {
                      "detail": "Consumer application is not eligible (Canceled or Suspended)."
                    },
                    "summary": "Ineligible Application"
                  },
                  "IneligibleAccount": {
                    "value": {
                      "detail": "Consumer account is not eligible (Closed or Suspended)."
                    },
                    "summary": "Ineligible Account"
                  },
                  "Non-zeroBalance": {
                    "value": {
                      "detail": "Consumer account must have 0 balance spent."
                    },
                    "summary": "Non-zero Balance"
                  },
                  "CLIAlreadyPerformed": {
                    "value": {
                      "detail": "Credit line increase has already been performed for this account."
                    },
                    "summary": "CLI Already Performed"
                  },
                  "InvalidAmount": {
                    "value": {
                      "detail": "Requested amount must be greater than current credit limit and less than                         equal to max credit limit."
                    },
                    "summary": "Invalid Amount"
                  }
                }
              }
            },
            "description": "Bad Request - Invalid request data, ineligible application/account, or non-zero balance."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "Forbidden": {
                    "value": {
                      "detail": "You do not have permission to initiate a credit line increase."
                    }
                  }
                }
              }
            },
            "description": "Forbidden - User does not have permission to initiate CLI."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "NotFound": {
                    "value": {
                      "detail": "Not found."
                    },
                    "summary": "Not Found"
                  }
                }
              }
            },
            "description": "Not Found - Consumer invitation not found."
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "ServiceUnavailable": {
                    "value": {
                      "detail": "Credit line increase requests are currently unavailable."
                    },
                    "summary": "Service Unavailable"
                  }
                }
              }
            },
            "description": "Service Unavailable"
          }
        }
      }
    },
    "/api/v1/sponsor/consumers/application/": {
      "post": {
        "operationId": "sponsor_consumers_application_create",
        "description": "For a merchant/contractor to issue a loan to a consumer.\n\nThe partner/sponsor must first send a POST to Momnt to initiate the consumer loan.\n\n- Sends an invite via **SMS** or **Email**\n- Only **ONE** of those fields is required\n- Providing both will result in an error",
        "summary": "Consumer Application Invitation",
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPreOnboarding"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPreOnboarding"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPreOnboarding"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPreOnboardingResponse"
                }
              }
            },
            "description": ""
          }
        },
        "callbacks": {
          "Consumer Application Callback": {
            "/path-to-callback/": {
              "post": {
                "description": "**Consumer Application Callback (POST)**\n\nAfter the sponsor initiates a consumer loan invitation in the step above, Momnt will send the loan\ninvitation via Email or SMS to the consumer.\nThe consumer will use the URL sent in the loan invitation to complete the Momnt loan application.\nOnce this is complete, the sponsor and merchant will need to know the outcome of that application.\nThe consumer's application decision and other relevant details will be sent to the sponsor_callback_url.\nWhen a consumer loan is approved or canceled, Momnt will POST information to this fully qualified URL.\nThis URL will be called A SECOND TIME when the loan documents are accepted by the consumer (borrower).\n\n**Requirements:**\nBefore this callback will fire, a successful POST to send a consumer application must have taken place,\nfollowed by successful completion of the application in the user interface session.\nBasic Auth is supported by a username/password combination which is pre-shared between Momnt and the\nsponsor.\n\n**Response Structure**:\n- Momnt expects acknowledgment of the POST with HTTP Status codes of 200 or 201 for success. Any other\nstatus code will result in an error being logged.\nThe payload will be logged and used for informational/historical purposes only and may contain anything\nthe external partner wishes.",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/CallbackConsumerApplicationSchema"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "No response body"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sponsor/consumers/offers/{offer_uuid}/select/": {
      "patch": {
        "operationId": "Selected_Consumer_Offer",
        "description": "**Overview**\n\n- This API enables external vendors to identify the product offer selected by a consumer\nand returns the necessary information to guide the consumer through completing their\nMomnt application and accepting the loan terms.\n\n- `offer_uuid` is the UUID of the selected offer, as provided in the Soft Pull response.",
        "parameters": [
          {
            "in": "path",
            "name": "offer_uuid",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer Soft Pull"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPartnerConsumerOfferUpdate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPartnerConsumerOfferUpdate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PatchedPartnerConsumerOfferUpdate"
              }
            }
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerOfferUpdateResponse"
                }
              }
            },
            "description": ""
          }
        },
        "callbacks": {
          "Consumer Application Callback": {
            "/sponsor_callback_url/": {
              "post": {
                "description": "**Consumer Application Callback (POST)**\n**Overview**\nAfter the external vendor initiates a consumer loan soft credit pull and the consumer selects a loan offer\nwithin the vendor's application, they are routed to the Momnt consumer application workflow to review and\naccept the loan terms. Once the consumer confirms their offer and accepts the terms, Momnt will send a\ncallback to the sponsor_callback_url with details about the consumer's application.\n**Requirements**\n- A successful POST request must have been made to begin the consumer application soft pull of credit.\n- The consumer must complete the loan application within the user interface.\n- Basic authentication (username/password) is supported and pre-shared between Momnt and the sponsor.",
                "responses": {
                  "200": {
                    "description": "No response body"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sponsor/consumers/soft-pull/": {
      "post": {
        "operationId": "Consumer_Soft_Pull_Request",
        "description": "**Overview**\n\nThis API allows external vendors to initiate a soft credit pull for consumers by\nproviding the required data elements. The API response will return either:\n\n- Offers with loan product(s) details, or\n- No Offers, which may trigger an Adverse Action Notice (AAN) email to the consumer.\n\n**Requirements**\n\n- Authentication (username and password) is required.\n- Sponsor ID is determined by the authentication credentials.\n- Callback URLs must use Basic Auth authentication.\nClients must implement Basic Auth for callback URLs and provide credentials to Momnt.\n- API requests will only be processed if the merchant's status is Active.",
        "tags": [
          "SponsorAPI _ Consumer Soft Pull"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerSoftPull"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerSoftPull"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerSoftPull"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerSoftPullResponse"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/all-transactions/": {
      "get": {
        "operationId": "Consumer_All_Transaction_Activity",
        "description": "A sponsor/partner may wish to obtain a list of recent activities associated with their merchant user. This\nendpoint will return a list of activities for the merchant user with the option to filter down to the loan level.\n\n**Requirements:**\nAuthentication information, username, and password are required for this endpoint. Sponsor ID will be determined\nby the authentication information used.\n\n- **request_user_id**: There must be a user ID in the Momnt system for this GET request to succeed. That user\nmust be active and should have been established in previous interactions, such as pre-onboarding or create_user.\n\n**Please Note:** If the `request_user_id` used has a Salesrep role, the user will only be able to view recent\nactivity where they were the user that sent the initial application invitation. If the user is an Admin or\nSalesmanager role, they will see all recent activity by all users.",
        "parameters": [
          {
            "in": "query",
            "name": "begin_date",
            "schema": {
              "type": "string"
            },
            "description": "limits the returned transactions to those requested on or after the provided date.format: `MM/DD/YYYY`"
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            },
            "description": "limits the returned transactions to those requested on or before the provided date.\nformat: `MM/DD/YYYY`.\nIf used with `begin_date`, `end_date` must be on or after `begin_date`"
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "A page number within the paginated result set.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page_size",
            "required": false,
            "in": "query",
            "description": "Number of results to return per page.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            },
            "description": "Returns the transactions for a specific loan number"
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedPartnerAllTransactionListList"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/available-transactions/": {
      "get": {
        "operationId": "Available_Consumer_Transactions",
        "parameters": [
          {
            "name": "ordering",
            "required": false,
            "in": "query",
            "description": "Which field to use when ordering the results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "A page number within the paginated result set.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page_size",
            "required": false,
            "in": "query",
            "description": "Number of results to return per page.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedPartnerMerchantAvailableTransactionsList"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/invitation/": {
      "get": {
        "operationId": "Consumer_Invitation_List",
        "description": "A sponsor/partner may wish to obtain a list of invitations associated with their account. This endpoint will\nprovide a list of all consumer invitations for the merchant user.\n\n**Requirements:**\n- Authentication information, username, and password are required for this endpoint.\n- Sponsor ID will be determined by the authentication information used.\n- request_user_id: There must be a user ID in the Momnt system for this GET request to succeed. That user must be\nactive and should have been established in previous interactions, such as pre-onboarding or create_user.\n- Please Note: If the request_user_id used has a Salesrep role, the user will only be able to view invitations where\nthey were the user that sent the initial application invitation. If the user is an Admin or Salesmanager role, they\nwill see all invitations sent by all users.\nrequest_user_id: There must be a user ID in the Momnt system for this GET request to succeed. That user must be\nactive and should have been established in previous interactions, such as pre-onboarding or create_user.\nPlease Note: If the request_user_id used has a Salesrep role, the user will only be able to view invitations where\nthey were the user that sent the initial application invitation. If the user is an Admin or Salesmanager role, they\nwill see all invitations sent by all users.",
        "parameters": [
          {
            "name": "ordering",
            "required": false,
            "in": "query",
            "description": "Which field to use when ordering the results.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "A page number within the paginated result set.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page_size",
            "required": false,
            "in": "query",
            "description": "Number of results to return per page.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "A search term.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedConsumerInvitationMerchantPortalList"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/invitation-otp/{external_application_id}/": {
      "get": {
        "operationId": "Consumer_Invitation_Test_OTP",
        "description": "Retrieves the OTP code for a consumer during onboarding.\nThis is available only in test environments.",
        "parameters": [
          {
            "in": "path",
            "name": "external_application_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer Soft Pull"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerInvitationTestOTPResponse"
                }
              }
            },
            "description": ""
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerInvitationTestOTPErrorResponse"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/refundable-transactions/{external_application_id}/": {
      "get": {
        "operationId": "Refundable_Transactions",
        "description": "Returns a list of refundable transactions to check which transactions are eligible\nfor a refund based on a consumer application.\n**Requirements**:\n- Authentication information, user, and password are required for this endpoint.\n- Sponsor ID will be determined by the authentication information used.\n- `request_user_id`: There must be a user ID in the Momnt system for this GET request to succeed.\nThat user must be active and should have been established in previous interactions,\nsuch as pre-onboarding or create_user.\n- `loan_id`: Partner’s ID for the Application sent in the consumer invitation initial POST.",
        "parameters": [
          {
            "in": "path",
            "name": "external_application_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerRefundableTransactionList"
                  }
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/{request_user_id}/settled/": {
      "post": {
        "operationId": "Consumer_Charge_Settled",
        "description": "For a Merchant/Contractor to see if a transaction is settled\n(The funds from the transaction are in the destination account).",
        "parameters": [
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerSettledTransactionUpdate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerSettledTransactionUpdate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerSettledTransactionUpdate"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerSettledTransactionResponseSchema"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/loan-applications/{request_user_id}/": {
      "get": {
        "operationId": "Merchant_Consumer_Applications_List",
        "description": "A sponsor/partner may wish to obtain a list of consumers/borrowers associated with their account. This endpoint\nwill return a list of all consumer loan objects for the merchant.\n\n**Requirements:**\n- Authentication information, username, and password are required for this endpoint.\n- Sponsor ID will be determined by the authentication information used.\n- request_user_id: There must be a user ID in the Momnt system for this GET request to succeed. That user must be\nactive and should have been established in previous interactions, such as pre-onboarding or create_user.\n- Please Note: If the request_user_id used has a Salesrep role, the user will only be able to view invitations\nwhere they were the user that sent the initial application invitation. If the user is an Admin or Salesmanager\nrole, they will see all invitations sent by all users.",
        "parameters": [
          {
            "in": "query",
            "name": "begin_date",
            "schema": {
              "type": "string"
            },
            "description": "Begin date of the consumer. format: 'YYYY-MM-DD'"
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            },
            "description": "End date of the consumer. format: 'YYYY-MM-DD'"
          },
          {
            "in": "query",
            "name": "external_org_id",
            "schema": {
              "type": "string"
            },
            "description": "External organization ID"
          },
          {
            "in": "query",
            "name": "first_name",
            "schema": {
              "type": "string"
            },
            "description": "First name of the consumer"
          },
          {
            "in": "query",
            "name": "last_name",
            "schema": {
              "type": "string"
            },
            "description": "Last name of the consumer"
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            },
            "description": "Status of the consumer"
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerMerchantLoansRead"
                  }
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/loan-applications/{request_user_id}/loan/{loan_id}/": {
      "get": {
        "operationId": "Consumer_Information_Details",
        "description": "A sponsor/partner may wish to obtain specific information about a single consumer/borrower present in the\nMomnt system.\n\n**Requirements:**\n- Authentication information, user, and password are required for this endpoint. Sponsor ID will be\ndetermined by the authentication information used.\n- request_user_id: There must be a user ID in the Momnt system for this GET request to succeed. That user\nmust be active and should have been established in previous interactions, such as pre-onboarding or\ncreate_user.\n- loan_id: Partner's ID for the Application sent in the initial POST.",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerMerchantLoansRead"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/loan-applications/{request_user_id}/loan/{loan_id}/invite-portal/": {
      "post": {
        "operationId": "Consumer_Payment_Portal_Account_Email_Request",
        "description": "For a merchant to transact with a consumer, the consumer must set up their Payment Portal account.\nIf the consumer hasn't set up their account, this endpoint can be used to send an email to the\nconsumer with the link to set up their account.\n\n**Requirements:**\nAuthentication information, username, and password are required for this endpoint. Sponsor ID will be\ndetermined by the authentication information used.\n\n- request_user_id: There must be a user ID in the Momnt system for this POST request to succeed. That\nuser must be active and should have been established in previous interactions.\n\n- Please Note: If the request_user_id used has a Salesrep role, the user will only be able to request\nwhere they were the user that sent the initial application invitation. If the user is an Admin or\nSalesmanager role, they will be able to send this request for all consumer loans.\n\n- loan_id: Partner's ID for the Application sent in the initial consumer application POST.",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/payment-request/": {
      "post": {
        "operationId": "Consumer_Payment_Request_Create",
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestCreate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestCreate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestCreate"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPaymentResponseSchema"
                }
              }
            },
            "description": ""
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            },
            "description": ""
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            },
            "description": ""
          }
        },
        "callbacks": {
          "Consumer Charge Callback": {
            "/path-to-callback/": {
              "post": {
                "description": "Consumer Charge Callback (POST)\nAfter the sponsor initiates a consumer payment in the step above, Momnt will send the payment request SMS to\nthe consumer. The consumer will respond to the SMS with a code sent in the SMS to approve the charge and\ninitiate money movement. Once this is complete, the sponsor and merchant will need to know the outcome of the\ntransaction. The result of the consumer charge and other relevant details will be sent to the\ntransaction_callback_url. When consumer charge is completed - success or failure - Momnt will POST information\nto this fully qualified URL.\n\n**Requirements:**\nBefore this callback will fire, a successful POST to send a consumer payment request must have taken place.\nBasic Auth is supported by a username/password combination which is pre-shared between Momnt and the sponsor.",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/CallbackConsumerPaymentRequestSchema"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "No response body"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/payment-request/{payment_request_uuid}/approve/": {
      "post": {
        "operationId": "sponsor_merchants_payment_request_approve_create",
        "description": "Manually approve a consumer payment request on behalf of the consumer.\nThis endpoint allows authorized sponsors to approve pending payment requests\nthat would normally require consumer approval via SMS or web interface.\n\n**Note:** Not every sponsor is allowed to approve payment requests by default.\nPlease contact support to enable this feature for you.",
        "summary": "Consumer Payment Request Approve",
        "parameters": [
          {
            "in": "path",
            "name": "payment_request_uuid",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "UUID of the payment request to approve",
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveRequest"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveRequest"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveRequest"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveResponse"
                },
                "examples": {
                  "Approved": {
                    "value": {
                      "detail": "Payment request of $100.00 to Acme Corp has been approved.",
                      "payment_request_status": "Already approved"
                    },
                    "summary": "Success"
                  }
                }
              }
            },
            "description": "Payment request was approved successfully."
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveResponse"
                },
                "examples": {
                  "ExpiredSession": {
                    "value": {
                      "detail": "The window to approve this payment request has expired.",
                      "payment_request_status": "Expired while session is active"
                    },
                    "summary": "Expired session (48h window)"
                  },
                  "ExpiredPurchaseWindow": {
                    "value": {
                      "detail": "The purchase window to approved this payment request has closed at 2025-01-15.",
                      "payment_request_status": "Expired"
                    },
                    "summary": "Purchase window closed"
                  },
                  "TransactionNotAllowed": {
                    "value": {
                      "detail": "No payments can be made with this account. This transaction was canceled.",
                      "payment_request_status": "Errored"
                    },
                    "summary": "Transaction not allowed"
                  }
                }
              }
            },
            "description": "Payment request could not be approved (expired, canceled, or invalid)."
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "PermissionDenied": {
                    "value": {
                      "detail": "You do not have permission to perform this action."
                    },
                    "summary": "Permission denied"
                  },
                  "UserNotAuthorizedForMerchant": {
                    "value": {
                      "detail": "User is not authorized for the specified external_org_id."
                    },
                    "summary": "User not authorized for merchant"
                  }
                }
              }
            },
            "description": "Sponsor is not allowed to manually approve payment requests or user is not authorized for the merchant."
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                },
                "examples": {
                  "PaymentRequestNotFound": {
                    "value": {
                      "detail": "No ConsumerPaymentRequest matches the given query."
                    },
                    "summary": "Payment request not found"
                  }
                }
              }
            },
            "description": "No ConsumerPaymentRequest matches the given query."
          },
          "500": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPaymentRequestApproveResponse"
                },
                "examples": {
                  "UnknownError": {
                    "value": {
                      "detail": "Unknown error",
                      "payment_request_status": "Unexpected status"
                    },
                    "summary": "Unexpected error"
                  }
                }
              }
            },
            "description": "Unexpected error while processing the approval."
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/payment-request/{request_user_id}/": {
      "get": {
        "operationId": "Consumer_Payment_Request_List",
        "description": "A sponsor/partner may wish to obtain a list of consumer payment requests associated with their account that are\npending approval. This endpoint will return a list of all consumer payment request objects for the merchant. A\nconsumer payment request, once approved, becomes a Consumer Charge which is queried using the endpoint above -\nthis is where you will see the result of the actual transaction. The Payment Requests query can be used to view\nthe payment requests that have been sent and whether they have been approved by the consumer. The Payment Request\nand the related Consumer Charge will have the same payment_request_id.\n\n**Requirements:**\nAuthentication information, username, and password are required for this endpoint. Sponsor ID will be determined\nby the authentication information used.\n\n- **request_user_id**: There must be a user ID in the Momnt system for this GET request to succeed. That user\nmust be active and should have been established in previous interactions, such as pre-onboarding or create_user.\n\n- **begin_date and end_date**: These can be used to limit the payment requests returned by a date range. If no\nbegin or end date is passed, then all payment requests for that merchant will be returned.",
        "parameters": [
          {
            "in": "query",
            "name": "begin_date",
            "schema": {
              "type": "string"
            },
            "description": "Begin date of the consumer. format: 'YYYY-MM-DD'"
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            },
            "description": "End date of the consumer. format: 'YYYY-MM-DD'"
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PartnerConsumerPaymentRequestList"
                }
              }
            },
            "description": ""
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/refund-payment-request/": {
      "post": {
        "operationId": "Consumer_Refund_Request",
        "description": "For a merchant/contractor to refund a consumer, the partner/sponsor must first send a POST to Momnt to\nrequest a payment refund. This request triggers an SMS message to the consumer requesting the refund\nconfirmation. The content of this SMS provides the consumer with the transaction amount, transaction type,\nand a code they must reply with to approve the refund.\n\nThere will be a response to this POST request to notify the partner/sponsor that the refund request was\nsuccessfully sent or if it failed before sending. Additionally, a callback will be posted to the\npartner/sponsor once the transaction is completed (success or failure), this is documented next.\n\n**Requirements:**\n\n- **Authentication information** (username and password) is required for this endpoint. Sponsor ID will be\ndetermined by the authentication information used.\n- This API will only be processed successfully if the merchant's status is **'Active'** or\n**'Hold – Pause Applications'**.\n- Only **Admin users** are authorized to initiate a refund request. If a user with insufficient\npermissions attempts to initiate a refund, the request will return an error.",
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PartnerRefundConsumerPaymentRequestCreate"
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "$ref": "#/components/schemas/PartnerRefundConsumerPaymentRequestCreate"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/PartnerRefundConsumerPaymentRequestCreate"
              }
            }
          },
          "required": true
        },
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailResponse"
                }
              }
            },
            "description": ""
          }
        },
        "callbacks": {
          "Consumer Refund Callback": {
            "/path-to-callback/": {
              "post": {
                "description": "Consumer Refund Callback (POST)\nThe result of the consumer refund and other relevant details will be sent to the `transaction_callback_url`.\nWhen consumer refund is completed, success or failure, Momnt will POST information to this fully qualified URL.\n**Requirements:**\n- Before this callback will fire, a successful POST to send a consumer refund request must have taken place.\n- Basic Auth is supported by a username/password combination which is pre-shared between Momnt and the sponsor.",
                "requestBody": {
                  "content": {
                    "application/json": {
                      "schema": {
                        "$ref": "#/components/schemas/CallbackRefundCPRSchema"
                      }
                    }
                  },
                  "required": true
                },
                "responses": {
                  "200": {
                    "description": "No response body"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/sponsor/merchants/transactions/{request_user_id}/": {
      "get": {
        "operationId": "Consumer_Transactions_List",
        "description": "A sponsor/partner merchant user may wish to obtain a list of consumer charge or refund transactions\nassociated with their account. This endpoint will provide a list of all consumer charge or refund\nobjects for the merchant user, either successful or failed. A Consumer Charge is the transaction\nthat occurs once a payment request is approved by the consumer. If a consumer does not approve a\nPayment Request, it does not become a Consumer Charge. Payment Request(s) will not be returned\nwith this endpoint. To see all transaction, including payment requests, use the\n\"Consumer - All Transaction Activity\" endpoint.\n\n**Requirements**:\n- Authentication information, username, and password are required for this endpoint.\n- Sponsor ID will be determined by the authentication information used.\n\n- request_user_id: There must be a user ID in the Momnt system for this GET request to succeed.\n- That user must be active and should have been established in previous interactions, such as\npre-onboarding or create_user.",
        "parameters": [
          {
            "in": "query",
            "name": "begin_date",
            "schema": {
              "type": "string"
            },
            "description": "Limits the returned transactions to transaction which have a request_datetimeon or after the provided date. format: 'YYYY-MM-DD'"
          },
          {
            "in": "query",
            "name": "end_date",
            "schema": {
              "type": "string"
            },
            "description": "Limits the returned transactions to transaction which have a request_datetimeon or before the provided date. format: 'YYYY-MM-DD'"
          },
          {
            "in": "path",
            "name": "request_user_id",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "tags": [
          "SponsorAPI _ Consumer"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PartnerConsumerTransaction"
                  }
                }
              }
            },
            "description": ""
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountExclusion": {
        "type": "object",
        "properties": {
          "exclusion_reason": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "exclusion_reason",
          "note"
        ]
      },
      "AchEvents": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "eventName": {
            "type": "string",
            "maxLength": 100
          },
          "partnerId": {
            "type": "string",
            "format": "uuid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "resources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            }
          }
        },
        "required": [
          "createdAt",
          "details",
          "eventName",
          "id",
          "partnerId",
          "resources"
        ]
      },
      "Address": {
        "type": "object",
        "properties": {
          "address_type": {
            "enum": [
              "Main/HQ",
              "Home",
              "Work",
              "Other",
              "Collections Agency"
            ],
            "type": "string",
            "description": "* `Main/HQ` - Main/HQ\n* `Home` - Home\n* `Work` - Work\n* `Other` - Other\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "4b3e23bbd4bee69a"
          },
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          },
          "address_verification_response": {
            "nullable": true
          }
        },
        "required": [
          "address_1",
          "city",
          "state",
          "zip_code"
        ]
      },
      "AddressOwner": {
        "type": "object",
        "properties": {
          "address_type": {
            "enum": [
              "Main/HQ",
              "Home",
              "Work",
              "Other",
              "Collections Agency"
            ],
            "type": "string",
            "description": "* `Main/HQ` - Main/HQ\n* `Home` - Home\n* `Work` - Work\n* `Other` - Other\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "4b3e23bbd4bee69a"
          },
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          }
        },
        "required": [
          "address_1",
          "city",
          "state",
          "zip_code"
        ]
      },
      "AddressUser": {
        "type": "object",
        "properties": {
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          }
        },
        "required": [
          "address_1",
          "city",
          "state",
          "zip_code"
        ]
      },
      "AddressVerificationResponse": {
        "type": "object",
        "properties": {
          "metadata": {},
          "components": {},
          "analysis": {}
        },
        "required": [
          "analysis",
          "components",
          "metadata"
        ]
      },
      "AllTransactionList": {
        "type": "object",
        "properties": {
          "consumer_first_name": {
            "type": "string"
          },
          "consumer_last_name": {
            "type": "string"
          },
          "request_date": {
            "type": "string",
            "format": "date-time"
          },
          "payment_request_status": {
            "type": "string",
            "readOnly": true
          },
          "transaction_description": {
            "type": "string"
          },
          "payment_request_id": {
            "type": "string"
          },
          "consumer_application_human_readable_id": {
            "type": "string"
          },
          "requested_by": {
            "type": "string",
            "readOnly": true
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "product_name": {
            "type": "string"
          },
          "ach_amount": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "ach_amount",
          "consumer_application_human_readable_id",
          "consumer_charge_amount",
          "consumer_first_name",
          "consumer_last_name",
          "payment_request_id",
          "payment_request_status",
          "product_name",
          "request_date",
          "requested_by",
          "transaction_description"
        ]
      },
      "ApplicationStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "ApplicationStatusHistory": {
        "type": "object",
        "properties": {
          "application_status_name": {
            "type": "string"
          },
          "application_status_reason": {
            "type": "string"
          },
          "status_changed_on": {
            "type": "string",
            "format": "date-time"
          },
          "application_uuid": {
            "type": "string"
          }
        },
        "required": [
          "application_uuid"
        ]
      },
      "ApplicationStatusReason": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ]
      },
      "ApprovedMerchantDetails": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "readOnly": true
          },
          "can_update_risk_tier": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "can_update_status": {
            "type": "string",
            "readOnly": true
          },
          "consumer_facing_brand": {
            "type": "string"
          },
          "change_rate_sheet": {
            "type": "string",
            "readOnly": true
          },
          "can_update_display_name": {
            "type": "string",
            "readOnly": true
          },
          "staged_funding_applied": {
            "type": "string",
            "readOnly": true
          },
          "sub_program": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "program": {
            "type": "string"
          },
          "offer_codes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferCodes"
            }
          },
          "rate_sheet": {
            "type": "string",
            "readOnly": true
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "merchant_facing_brand": {
            "type": "string"
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "risk_tier": {
            "type": "string"
          },
          "hubspot_url": {
            "type": "string",
            "readOnly": true
          },
          "application_uuid": {
            "type": "string",
            "readOnly": true
          },
          "address": {
            "type": "string",
            "readOnly": true
          },
          "has_custom_staged_funding": {
            "type": "string",
            "readOnly": true
          },
          "internal_id": {
            "type": "string"
          }
        },
        "required": [
          "address",
          "application_uuid",
          "can_update_display_name",
          "can_update_risk_tier",
          "can_update_status",
          "change_rate_sheet",
          "display_name",
          "email",
          "has_custom_staged_funding",
          "hubspot_url",
          "internal_id",
          "name",
          "offer_codes",
          "phone",
          "program",
          "rate_sheet",
          "risk_tier",
          "staged_funding_applied",
          "status",
          "sub_program"
        ]
      },
      "ApprovedMerchantList": {
        "type": "object",
        "properties": {
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "approved_date": {
            "type": "string",
            "format": "date"
          },
          "internal_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "sponsor": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "is_auto_approved": {
            "type": "string",
            "readOnly": true
          },
          "program": {
            "type": "string"
          },
          "sub_program": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "approved_date",
          "display_name",
          "internal_id",
          "is_auto_approved",
          "name",
          "program",
          "status",
          "sub_program"
        ]
      },
      "AttributeType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "is_tiered": {
            "type": "boolean"
          },
          "min": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "AuditLog": {
        "type": "object",
        "properties": {
          "object_json_repr": {
            "type": "string",
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "datetime": {
            "type": "string",
            "format": "date-time"
          },
          "new_values": {
            "type": "string",
            "readOnly": true
          },
          "old_values": {
            "type": "string",
            "readOnly": true
          },
          "object_repr": {
            "type": "string",
            "title": "Object representation"
          },
          "user_id": {
            "type": "integer"
          },
          "view_details": {
            "type": "string",
            "readOnly": true
          },
          "object": {
            "type": "string",
            "readOnly": true
          },
          "event_type": {
            "type": "string",
            "readOnly": true
          },
          "object_id": {
            "type": "string",
            "maxLength": 255
          },
          "user": {
            "type": "string"
          },
          "source_of_change": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "datetime",
          "event_type",
          "id",
          "new_values",
          "object",
          "object_id",
          "object_json_repr",
          "old_values",
          "source_of_change",
          "view_details"
        ]
      },
      "BankAccountSchema": {
        "type": "object",
        "description": "Schema serializer for BankAccountSerializer, intended to be used for api documentation schema generation.",
        "properties": {
          "bank_status": {
            "type": "string",
            "readOnly": true
          },
          "bank_name": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_type": {
            "type": "string",
            "readOnly": true
          },
          "routing_number": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_last_4": {
            "type": "string",
            "readOnly": true
          },
          "verification_locked": {
            "type": "string",
            "readOnly": true
          },
          "payment_provider_details_id": {
            "type": "integer",
            "readOnly": true
          }
        },
        "required": [
          "bank_account_last_4",
          "bank_account_type",
          "bank_name",
          "bank_status",
          "payment_provider_details_id",
          "routing_number",
          "verification_locked"
        ]
      },
      "BankAccountsWebhook": {
        "type": "object",
        "properties": {
          "eventID": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "enum": [
              "bankAccount.created",
              "bankAccount.updated",
              "bankAccount.deleted"
            ],
            "type": "string",
            "description": "* `bankAccount.created` - bankAccount.created\n* `bankAccount.updated` - bankAccount.updated\n* `bankAccount.deleted` - bankAccount.deleted",
            "x-spec-enum-id": "f2350a59efa6a3bd"
          },
          "data": {
            "$ref": "#/components/schemas/Data"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "createdOn",
          "data",
          "eventID",
          "type"
        ]
      },
      "BasePlaidWebhook": {
        "type": "object",
        "properties": {
          "webhook_type": {
            "type": "string"
          },
          "webhook_code": {
            "type": "string"
          }
        },
        "required": [
          "webhook_code",
          "webhook_type"
        ]
      },
      "CPRServicerVerificationGetResponse": {
        "type": "object",
        "properties": {
          "merchant_display_name": {
            "type": "string"
          }
        },
        "required": [
          "merchant_display_name"
        ]
      },
      "CPRServicerVerificationPostRequest": {
        "type": "object",
        "properties": {
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4,
            "minLength": 4
          },
          "loan_number": {
            "type": "string",
            "maxLength": 28,
            "minLength": 1
          }
        },
        "required": [
          "loan_number",
          "ssn_last_four"
        ]
      },
      "CPRServicerVerificationPostResponse": {
        "type": "object",
        "properties": {
          "merchant_display_name": {
            "type": "string",
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "readOnly": true
          },
          "charge_type": {
            "type": "string",
            "readOnly": true
          },
          "loan_number": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "charge_type",
          "loan_number",
          "merchant_display_name"
        ]
      },
      "CRBBankAccount": {
        "type": "object",
        "properties": {
          "bank_status": {
            "type": "string",
            "readOnly": true
          },
          "bank_name": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_type": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_last_4": {
            "type": "string",
            "readOnly": true
          },
          "routing_number": {
            "type": "string",
            "readOnly": true
          },
          "payment_provider_details_id": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "bank_account_last_4",
          "bank_account_type",
          "bank_name",
          "bank_status",
          "payment_provider_details_id",
          "routing_number"
        ]
      },
      "CRBGuid": {
        "type": "object",
        "properties": {
          "crb_guid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "crb_guid"
        ]
      },
      "CallbackConsumerApplicationSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "consumer_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CallbackConsumerInfoSchema"
              }
            ],
            "description": "An object of consumer details."
          },
          "external_application_id": {
            "type": "string",
            "format": "uuid",
            "description": "Partner's ID for the Application sent in initial POST."
          },
          "consumer_application_status": {
            "enum": [
              "Approve",
              "Approved",
              "Accepted",
              "Declined",
              "Cancel"
            ],
            "type": "string",
            "description": "* `Approve` - Approve\n* `Approved` - Approved\n* `Accepted` - Accepted\n* `Declined` - Declined\n* `Cancel` - Cancel",
            "x-spec-enum-id": "ed3a0f2c8be9be07"
          },
          "status_date": {
            "type": "string",
            "format": "date"
          },
          "consumer_application_id": {
            "type": "string",
            "description": "10-digit application id.",
            "maxLength": 10,
            "minLength": 10
          },
          "requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "description": "Consumer request loan amount (dollars)."
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "description": "Credit Limit the consumer was approved for (only if status is Approve or Approved: Accepted)."
          },
          "contractor_id": {
            "type": "string",
            "format": "uuid",
            "description": "UUID of the Contractor associated with Application."
          },
          "purchase_window_close_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the purchase window closes (only if status is Approve or Approved: Accepted)."
          },
          "loan_product": {
            "type": "string",
            "description": "Product ID for the loan product selected by the consumer (only if status is Approve or Approved: Accepted).",
            "maxLength": 255
          },
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,4})?$",
            "description": "The transaction fee is charged to the merchant for this consumer's loan. This is a percentage in decimal form, multiply by 100 to present in percentage form."
          },
          "payment_factor": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,4})?$",
            "description": "The payment factor for the product the consumer selected. This is in decimal form."
          },
          "apr": {
            "type": "string",
            "description": "The APR for the product the consumer selected.",
            "maxLength": 255
          },
          "term": {
            "type": "string",
            "description": "The term of the loan for the product the consumer selected.",
            "maxLength": 255
          },
          "app_status_detail_desc": {
            "type": "string",
            "description": "Details regarding the application status.",
            "maxLength": 255
          },
          "soft_pull_credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,4})?$",
            "description": "Soft Pull approved credit limit."
          },
          "products_offered": {
            "type": "string",
            "description": "List of products offered during the consumer application process.",
            "maxLength": 255
          },
          "current_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,4})?$",
            "description": "Current balance of the loan (available funds)."
          },
          "artis_consumer_invitation_id": {
            "type": "string",
            "format": "uuid",
            "description": "Momnt's invitation identifier; provided in invitation response."
          },
          "request_user_invitation_id": {
            "type": "string",
            "format": "uuid",
            "description": "External User ID that is sent in the consumer loan invitation."
          },
          "decision_detail": {
            "type": "string",
            "description": "The decision_detail field can contain one of the following values:\n- \"\" (empty string, default when the following specific decision detail don't apply)\n- \"frozen_credit\" (indicating the consumer's credit was frozen)\n- \"approved_for_less\" (indicating the consumer was approved for a lower amount than requested)"
          },
          "is_valid_for_transaction": {
            "type": "boolean",
            "description": "True or False - Can this account transact?"
          }
        },
        "required": [
          "app_status_detail_desc",
          "apr",
          "artis_consumer_invitation_id",
          "consumer_application_id",
          "consumer_application_status",
          "consumer_info",
          "contractor_id",
          "credit_limit",
          "current_balance",
          "decision_detail",
          "external_application_id",
          "is_valid_for_transaction",
          "loan_product",
          "merchant_fee",
          "payment_factor",
          "products_offered",
          "purchase_window_close_date",
          "request_user_invitation_id",
          "requested_amount",
          "soft_pull_credit_limit",
          "status_date",
          "term"
        ]
      },
      "CallbackConsumerInfoSchema": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string"
          },
          "address_line_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_line_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 255
          },
          "zip_code": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "address_line_1",
          "city",
          "email",
          "first_name",
          "last_name",
          "phone_number",
          "state",
          "zip_code"
        ]
      },
      "CallbackConsumerPaymentRequestSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "application_id": {
            "type": "string",
            "description": "10-digit Human Readable ID associated with consumer application/account",
            "maxLength": 10
          },
          "artis_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Momnt Fee for transaction"
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Amount charged to consumer"
          },
          "date_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date time stamp of transaction"
          },
          "first_name": {
            "type": "string",
            "description": "First Name of Consumer associated with Transaction",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "description": "Last Name of Consumer associated with Transaction",
            "maxLength": 255
          },
          "net_to_merchant_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount sent to merchant account for transaction"
          },
          "net_to_sponsor_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount sent to sponsor account for transaction"
          },
          "payment_identifier": {
            "type": "integer",
            "description": "Payment identifier number of consumer transaction"
          },
          "remaining_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Amount of the consumer's credit limit that is remaining and available to spend after the transaction"
          },
          "status": {
            "type": "string",
            "description": "Status of the transaction: Successful, Failed, or Reversed",
            "maxLength": 255
          },
          "submitted_by": {
            "type": "string",
            "format": "uuid",
            "description": "UUID of the merchant user that sent the payment request"
          },
          "transaction_description": {
            "type": "string",
            "description": "Description of the transaction",
            "maxLength": 255
          },
          "transaction_group_type": {
            "type": "string",
            "description": "Short description of transaction (Charge or Refund)",
            "maxLength": 255
          },
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Commission percentage rate shown as decimal value. Also known as dealer fee."
          },
          "merchant_fee_transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Calculated commission based on consumer charge request. Also known as merchant fee."
          },
          "external_application_id": {
            "type": "string",
            "format": "uuid",
            "description": "Partner's ID for the application sent in initial POST"
          },
          "payment_request_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "Momnt's ID for the charge request sent"
          },
          "is_settled": {
            "type": "string",
            "description": "Identifies if the consumer charge/refund transaction has been settled with the payment provider.",
            "maxLength": 255
          }
        },
        "required": [
          "application_id",
          "artis_fee",
          "consumer_charge_amount",
          "date_time",
          "external_application_id",
          "first_name",
          "is_settled",
          "last_name",
          "merchant_fee",
          "merchant_fee_transaction_amount",
          "net_to_merchant_amount",
          "net_to_sponsor_amount",
          "payment_identifier",
          "payment_request_uuid",
          "remaining_balance",
          "status",
          "submitted_by",
          "transaction_description",
          "transaction_group_type"
        ]
      },
      "CallbackForwarderRequest": {
        "type": "object",
        "properties": {
          "event": {
            "$ref": "#/components/schemas/MomntEvent"
          }
        },
        "required": [
          "event"
        ]
      },
      "CallbackOwner": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "owner_percentage"
        ]
      },
      "CallbackPartnerMerchantPreOnboardingSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "owners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CallbackOwner"
            },
            "description": "One object per merchant owner."
          },
          "contractor_id": {
            "type": "string",
            "format": "uuid",
            "description": "External Partner assigned identifier for this merchant/contractor."
          },
          "legal_business_name": {
            "type": "string",
            "description": "Registered business name for this merchant.",
            "maxLength": 255
          },
          "dba_name": {
            "type": "string",
            "description": "Registered Doing Business As name, if different from the legal_business_name.",
            "maxLength": 255
          },
          "ein": {
            "type": "string",
            "description": "Federal Tax ID Number.",
            "maxLength": 255
          },
          "merchant_application_status": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "terms_and_conditions_accepted": {
            "type": "boolean",
            "description": "This is always true, as they can't complete an app without accepting the T&C."
          },
          "business_structure": {
            "enum": [
              "Sole Proprietorship",
              "LLC",
              "S Corp",
              "C Corp",
              "Partnership"
            ],
            "type": "string",
            "x-spec-enum-id": "d336c109f46053bf",
            "description": "Expected Values: Sole Proprietorship, LLC, S Corp, or C Corp, or Partnership.\n\n* `Sole Proprietorship` - Sole Proprietorship\n* `LLC` - LLC\n* `S Corp` - S Corp\n* `C Corp` - C Corp\n* `Partnership` - Partnership"
          },
          "offers_financing": {
            "type": "boolean"
          },
          "average_customer_spend": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "description": "Average customer spend amount in USD floating point 111.22."
          },
          "merchant_website_url": {
            "type": "string",
            "format": "uri",
            "description": "A URL to the merchant's website."
          },
          "data_business_started": {
            "type": "string",
            "format": "date"
          },
          "annual_sales_revenue": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "description": "Annual revenue amount in USD."
          },
          "yearly_financing_volume": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "description": "Yearly financing amount in USD."
          },
          "payment_types": {
            "type": "array",
            "items": {
              "enum": [
                "Visa/ Mastercard",
                "Amex",
                "Cash",
                "Check"
              ],
              "type": "string",
              "description": "* `Visa/ Mastercard` - Visa/ Mastercard\n* `Amex` - Amex\n* `Cash` - Cash\n* `Check` - Check",
              "x-spec-enum-id": "1861d56d34e238b9"
            }
          },
          "merchant_account_exists": {
            "type": "boolean",
            "description": "Whether a Merchant has a payment account."
          },
          "bank_account_status": {
            "type": "string",
            "description": "The status of the Merchant’s bank account verification. Values can be: `false`, `new`, `pending`, `verified`, `verificationFailed`, `errored`"
          },
          "last_four": {
            "type": "string",
            "description": "Empty string."
          }
        },
        "required": [
          "annual_sales_revenue",
          "average_customer_spend",
          "bank_account_status",
          "business_structure",
          "contractor_id",
          "data_business_started",
          "last_four",
          "legal_business_name",
          "merchant_account_exists",
          "merchant_application_status",
          "merchant_website_url",
          "offers_financing",
          "owners",
          "payment_types",
          "status",
          "terms_and_conditions_accepted",
          "yearly_financing_volume"
        ]
      },
      "CallbackRefundCPRSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "status": {
            "type": "string",
            "description": "Status of the transaction: Successful or Failed"
          },
          "date_time": {
            "type": "string",
            "format": "date-time",
            "description": "Date time stamp of transaction"
          },
          "first_name": {
            "type": "string",
            "description": "First Name of Consumer associated with Transaction"
          },
          "last_name": {
            "type": "string",
            "description": "Last Name of Consumer associated with Transaction"
          },
          "submitted_by": {
            "type": "string",
            "format": "uuid",
            "description": "UUID of merchant user that sent the payment request"
          },
          "application_id": {
            "type": "string",
            "description": "10-digit Human Readable ID associated with consumer application/account"
          },
          "consumer_refund_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Amount refunded to consumer"
          },
          "remaining_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Amount of the consumer's credit limit that is remaining and available to spend after the transaction"
          },
          "artis_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Momnt Fee for transaction"
          },
          "net_to_sponsor_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount sent to sponsor account for transaction"
          },
          "net_to_merchant_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount sent to merchant account for transaction"
          },
          "transaction_group_type": {
            "type": "string",
            "description": "Short description of transaction (Charge or Refund)"
          },
          "transaction_description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "payment_identifier": {
            "type": "integer",
            "description": "Momnt's identifier for the consumer refund transaction."
          },
          "external_application_id": {
            "type": "string",
            "format": "uuid",
            "description": "Partner's ID for the application sent in initial POST"
          },
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Commission percentage rate shown as decimal value. Also known as dealer fee."
          },
          "merchant_fee_transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Calculated commission based on consumer charge request. Also known as merchant fee."
          },
          "payment_request_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "Momnt's ID for the charge request sent"
          }
        },
        "required": [
          "application_id",
          "artis_fee",
          "consumer_refund_amount",
          "date_time",
          "external_application_id",
          "first_name",
          "last_name",
          "merchant_fee",
          "merchant_fee_transaction_amount",
          "net_to_merchant_amount",
          "net_to_sponsor_amount",
          "payment_identifier",
          "payment_request_uuid",
          "remaining_balance",
          "status",
          "submitted_by",
          "transaction_description",
          "transaction_group_type"
        ]
      },
      "Card": {
        "type": "object",
        "properties": {
          "card_last_4": {
            "type": "string",
            "readOnly": true
          },
          "expiration": {
            "type": "string",
            "readOnly": true
          },
          "issuer": {
            "type": "string",
            "readOnly": true
          },
          "brand": {
            "type": "string",
            "readOnly": true
          },
          "payment_provider_details_id": {
            "type": "integer",
            "readOnly": true
          }
        },
        "required": [
          "brand",
          "card_last_4",
          "expiration",
          "issuer",
          "payment_provider_details_id"
        ]
      },
      "CardSale": {
        "type": "object",
        "properties": {
          "event_meta_data": {
            "$ref": "#/components/schemas/EventMetaDataCardSale"
          },
          "event_data": {
            "$ref": "#/components/schemas/EventDataCardSale"
          }
        },
        "required": [
          "event_data",
          "event_meta_data"
        ]
      },
      "CertificateOfCompletionConsumerSign": {
        "type": "object",
        "properties": {
          "consumer_consented_on": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "consumer_consented_on"
        ]
      },
      "CertificateOfCompletionCreate": {
        "type": "object",
        "description": "Serializer for creating a new Certificate of Completion (CoC) entry.\nValidates merchant, consumer account, and merchant consent.",
        "properties": {
          "consumer_account_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_consented_on": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "consumer_account_uuid",
          "merchant_consented_on"
        ]
      },
      "CertificateOfCompletionEnterprisePortal": {
        "type": "object",
        "properties": {
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "coc_status": {
            "type": "string",
            "readOnly": true
          },
          "consumer_full_name": {
            "type": "string",
            "readOnly": true
          },
          "merchant_user_full_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "coc_status",
          "consumer_full_name",
          "merchant_user_full_name",
          "sent_on"
        ]
      },
      "CertificateOfCompletionMerchantPortal": {
        "type": "object",
        "properties": {
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "coc_status": {
            "type": "string",
            "readOnly": true
          },
          "consumer_full_name": {
            "type": "string",
            "readOnly": true
          },
          "merchant_user_full_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "coc_status",
          "consumer_full_name",
          "merchant_user_full_name",
          "sent_on"
        ]
      },
      "CheckReturn": {
        "type": "object",
        "properties": {
          "event_meta_data": {
            "$ref": "#/components/schemas/EventMetaDataCheckReturn"
          },
          "event_data": {
            "$ref": "#/components/schemas/EventDataCheckReturn"
          }
        },
        "required": [
          "event_data",
          "event_meta_data"
        ]
      },
      "CheckSale": {
        "type": "object",
        "properties": {
          "event_meta_data": {
            "$ref": "#/components/schemas/EventMetaDataCardSale"
          },
          "event_data": {
            "$ref": "#/components/schemas/EventDataCheckSale"
          }
        },
        "required": [
          "event_data",
          "event_meta_data"
        ]
      },
      "ComplianceLoanFailed": {
        "type": "object",
        "properties": {
          "MPLId": {
            "type": "string"
          },
          "Ignore": {
            "type": "boolean"
          },
          "content": {
            "$ref": "#/components/schemas/ComplianceLoanFailedContent"
          }
        },
        "required": [
          "Ignore",
          "MPLId",
          "content"
        ]
      },
      "ComplianceLoanFailedContent": {
        "type": "object",
        "properties": {
          "MPLId": {
            "type": "string"
          },
          "LoanId": {
            "type": "string",
            "format": "uuid"
          },
          "CreateDate": {
            "type": "string"
          },
          "FailedRulesReasons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FailedRuleReason"
            }
          }
        },
        "required": [
          "CreateDate",
          "FailedRulesReasons",
          "LoanId",
          "MPLId"
        ]
      },
      "ConsentTypesConsumerApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer",
            "readOnly": true
          },
          "consumer_application": {
            "type": "integer",
            "readOnly": true
          },
          "consent_type": {
            "type": "integer"
          },
          "presented_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "document": {
            "type": "string",
            "format": "uri"
          },
          "opt_in": {
            "type": "boolean"
          },
          "consent_text": {
            "type": "string"
          },
          "user_timezone": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "lender_doc": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "consent_type",
          "consumer_application",
          "id",
          "presented_on",
          "user"
        ]
      },
      "ConsentTypesMerchantApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer",
            "readOnly": true
          },
          "merchant_application": {
            "type": "integer",
            "readOnly": true
          },
          "presented_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consent_type": {
            "type": "integer"
          }
        },
        "required": [
          "consent_type",
          "id",
          "merchant_application",
          "presented_on",
          "user"
        ]
      },
      "ConsumerACHBankAccount": {
        "type": "object",
        "properties": {
          "bank_account_status": {
            "type": "boolean",
            "readOnly": true
          },
          "bank_name": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_type": {
            "type": "string",
            "readOnly": true
          },
          "bank_account_last_4": {
            "type": "string",
            "readOnly": true
          },
          "routing_number": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "bank_account_last_4",
          "bank_account_status",
          "bank_account_type",
          "bank_name",
          "routing_number"
        ]
      },
      "ConsumerAccount": {
        "type": "object",
        "properties": {
          "edit_dq_exclusion_reason": {
            "type": "boolean",
            "readOnly": true
          },
          "total_pay_off_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "merchant_phone_number": {
            "type": "string"
          },
          "crb_stuck_loan": {
            "type": "boolean",
            "description": "Check if the loan is stuck in the CRB lender funding",
            "readOnly": true
          },
          "servicer_name": {
            "type": "string",
            "readOnly": true,
            "nullable": true
          },
          "total_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "repay_link": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "collections_agency": {
            "type": "integer",
            "nullable": true
          },
          "first_billing_cycle_date": {
            "type": "string",
            "readOnly": true
          },
          "dq_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DQStatus"
              }
            ],
            "default": {}
          },
          "suppress_email_communication": {
            "type": "boolean"
          },
          "scra": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "first_payment_due_date": {
            "type": "string",
            "readOnly": true
          },
          "bill_load_file_date": {
            "type": "string",
            "format": "date"
          },
          "maturity_date": {
            "type": "string",
            "readOnly": true
          },
          "product_details": {
            "type": "string"
          },
          "can_make_payment": {
            "type": "boolean",
            "readOnly": true
          },
          "loan_number": {
            "type": "string",
            "title": "Application ID/Loan number",
            "maxLength": 28
          },
          "next_billing_date": {
            "type": "string",
            "format": "date"
          },
          "late_fees_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "next_payment_due_date": {
            "type": "string",
            "readOnly": true
          },
          "total_amount_past_due": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "fees_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "note": {
            "type": "string"
          },
          "consumer_facing_brand": {
            "type": "string"
          },
          "preferred_language": {
            "$ref": "#/components/schemas/PreferredLanguage"
          },
          "max_approved_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "make_payment": {
            "type": "boolean",
            "readOnly": true
          },
          "can_update_credit_limit": {
            "type": "boolean",
            "readOnly": true
          },
          "update_dob": {
            "type": "boolean",
            "readOnly": true
          },
          "staged_funding_applied": {
            "type": "boolean",
            "readOnly": true
          },
          "dq_exclusion_reason": {
            "type": "boolean",
            "readOnly": true
          },
          "remaining_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "consumer_name": {
            "type": "string"
          },
          "link_to_borrower_agreement_amortization": {
            "type": "string",
            "format": "uri"
          },
          "payment_reversal_fee": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "promo_end_date": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "apr": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,1}(?:\\.\\d{0,4})?$"
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "payment_due": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "product_name": {
            "type": "string"
          },
          "late_fee_amount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "property_address": {
            "$ref": "#/components/schemas/ConsumerAddress"
          },
          "servicing_account": {
            "type": "string"
          },
          "loss_mitigator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LossMitigator"
              }
            ],
            "readOnly": true
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4,
            "minLength": 4
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "link_to_borrower_agreement_origination": {
            "type": "string",
            "format": "uri"
          },
          "loan_product_title": {
            "type": "string"
          },
          "account_status": {
            "type": "string"
          },
          "origination_date": {
            "type": "string",
            "format": "date"
          },
          "designated_bank_account_payment_provider": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "conversion_date": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "readOnly": true
          },
          "merchant": {
            "$ref": "#/components/schemas/ConsumerMerchant"
          },
          "payment_due_date": {
            "type": "string",
            "format": "date"
          },
          "update_ssn_last_four": {
            "type": "boolean",
            "readOnly": true
          },
          "lender": {
            "type": "string"
          },
          "current_amount_spent": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "can_update_risk_status": {
            "type": "boolean",
            "readOnly": true
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/ConsumerAddress"
          },
          "update_address": {
            "type": "boolean",
            "readOnly": true
          },
          "transunion_ssn_last_four": {
            "type": "string"
          },
          "current_principal_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "finance_charge_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "user": {
            "type": "integer"
          },
          "request_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "deferred_finance_charge_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "risk_status": {
            "type": "string"
          }
        },
        "required": [
          "account_status",
          "address",
          "apr",
          "can_make_payment",
          "can_update_credit_limit",
          "can_update_risk_status",
          "consumer_facing_brand",
          "consumer_name",
          "conversion_date",
          "crb_stuck_loan",
          "credit_limit",
          "current_amount_spent",
          "designated_bank_account_payment_provider",
          "dob",
          "dq_exclusion_reason",
          "edit_dq_exclusion_reason",
          "email",
          "first_billing_cycle_date",
          "first_payment_due_date",
          "late_fee_amount",
          "lender",
          "loan_number",
          "loan_product_title",
          "loss_mitigator",
          "make_payment",
          "maturity_date",
          "max_approved_amount",
          "merchant",
          "merchant_phone_number",
          "next_payment_due_date",
          "origination_date",
          "payment_reversal_fee",
          "product_details",
          "product_name",
          "promo_end_date",
          "property_address",
          "purchase_window_end_date",
          "remaining_balance",
          "repay_link",
          "request_amount",
          "risk_status",
          "scra",
          "security_pin",
          "servicer_name",
          "ssn_last_four",
          "staged_funding_applied",
          "transunion_ssn_last_four",
          "update_address",
          "update_dob",
          "update_ssn_last_four",
          "user"
        ]
      },
      "ConsumerAccountBalance": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "amount_spent": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "available_spend": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "current_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "is_valid_for_transaction": {
            "type": "string",
            "readOnly": true
          },
          "merchant_fee": {
            "type": "number",
            "format": "double"
          }
        },
        "required": [
          "amount_spent",
          "available_spend",
          "credit_limit",
          "current_balance",
          "is_valid_for_transaction",
          "merchant_fee"
        ]
      },
      "ConsumerAccountBalanceWithTransaction": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "amount_spent": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "available_spend": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "current_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "is_valid_for_transaction": {
            "type": "boolean",
            "readOnly": true
          },
          "merchant_fee": {
            "type": "number",
            "format": "double"
          },
          "transaction_status_code": {
            "type": "integer",
            "readOnly": true
          }
        },
        "required": [
          "amount_spent",
          "available_spend",
          "credit_limit",
          "current_balance",
          "is_valid_for_transaction",
          "merchant_fee",
          "transaction_status_code"
        ]
      },
      "ConsumerAccountBulkUpdate": {
        "type": "object",
        "properties": {
          "account_status_file": {
            "type": "string",
            "format": "uri",
            "writeOnly": true
          },
          "updated": {
            "type": "string",
            "readOnly": true
          },
          "not_updated": {
            "type": "string",
            "readOnly": true
          },
          "same_status": {
            "type": "string",
            "readOnly": true
          },
          "update_ignored": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "account_status_file",
          "not_updated",
          "same_status",
          "update_ignored",
          "updated"
        ]
      },
      "ConsumerAccountCertificateOfCompletionEP": {
        "type": "object",
        "properties": {
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "coc_status": {
            "type": "string",
            "readOnly": true
          },
          "consumer_full_name": {
            "type": "string",
            "readOnly": true
          },
          "merchant_sales_rep": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "coc_status",
          "consumer_full_name",
          "merchant_sales_rep",
          "sent_on"
        ]
      },
      "ConsumerAccountCreditLimit": {
        "type": "object",
        "properties": {
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "credit_limit"
        ]
      },
      "ConsumerAccountCreditStatus": {
        "type": "object",
        "properties": {
          "credit_status_data": {
            "type": "object",
            "additionalProperties": {
              "type": "integer"
            }
          }
        },
        "required": [
          "credit_status_data"
        ]
      },
      "ConsumerAccountList": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "full_name": {
            "type": "string",
            "readOnly": true
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "loan_number": {
            "type": "string",
            "readOnly": true
          },
          "origination_date": {
            "type": "string",
            "format": "date-time"
          },
          "account_status": {
            "type": "string"
          },
          "total_amount_due": {
            "type": "string",
            "readOnly": true
          },
          "dq_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DQStatus"
              }
            ],
            "default": {}
          },
          "merchant_name": {
            "type": "string"
          },
          "merchant_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "spend_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "recurring_payments": {
            "type": "boolean"
          },
          "merchant_sub_programs": {
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "credit_limit",
          "email",
          "full_name",
          "loan_number",
          "merchant_name",
          "merchant_sub_programs",
          "merchant_uuid",
          "origination_date",
          "phone_number",
          "recurring_payments",
          "total_amount_due",
          "uuid"
        ]
      },
      "ConsumerAccountLoanApplication": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "available_spend": {
            "type": "string",
            "readOnly": true
          },
          "amount_spent": {
            "type": "string",
            "readOnly": true
          },
          "is_valid_for_transaction": {
            "type": "string",
            "readOnly": true
          },
          "no_transaction_message": {
            "type": "string",
            "readOnly": true
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "transaction_restriction": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "amount_spent",
          "available_spend",
          "is_valid_for_transaction",
          "no_transaction_message",
          "product_name",
          "transaction_restriction"
        ]
      },
      "ConsumerAccountLoans": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "loan_number": {
            "type": "string",
            "title": "Application ID/Loan number",
            "maxLength": 28
          }
        },
        "required": [
          "loan_number"
        ]
      },
      "ConsumerAccountLookup": {
        "type": "object",
        "properties": {
          "loan_number": {
            "type": "string"
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4,
            "minLength": 4
          }
        },
        "required": [
          "loan_number",
          "ssn_last_four"
        ]
      },
      "ConsumerAccountRegistration": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "writeOnly": true
          },
          "confirm_password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "confirm_password",
          "password"
        ]
      },
      "ConsumerAccountServicer": {
        "type": "object",
        "properties": {
          "has_servicer_user_account": {
            "type": "string",
            "readOnly": true
          },
          "servicer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Servicer"
              }
            ],
            "nullable": true
          }
        },
        "required": [
          "has_servicer_user_account",
          "servicer"
        ]
      },
      "ConsumerAccountStatus": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ]
      },
      "ConsumerAddress": {
        "type": "object",
        "properties": {
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          },
          "housing_status": {
            "enum": [
              "Rent",
              "Own",
              "Other",
              ""
            ],
            "type": "string",
            "description": "* `Rent` - Rent\n* `Own` - Own\n* `Other` - Other",
            "x-spec-enum-id": "520a566bfc4ee4ee"
          }
        },
        "required": [
          "address_1",
          "city",
          "state",
          "zip_code"
        ]
      },
      "ConsumerAnnualIncome": {
        "type": "object",
        "properties": {
          "annual_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        },
        "required": [
          "annual_income"
        ]
      },
      "ConsumerAppRetrieve": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone": {
            "type": "string",
            "readOnly": true
          },
          "user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "sensitive": {
            "$ref": "#/components/schemas/ConsumerSensitive"
          },
          "offer": {
            "type": "string",
            "readOnly": true
          },
          "requested_loan_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "lender": {
            "type": "string",
            "readOnly": true
          },
          "lender_privacy_policy_url": {
            "type": "string",
            "readOnly": true
          },
          "credit_line": {
            "type": "string",
            "readOnly": true
          },
          "expires_on_date": {
            "type": "string"
          },
          "reasons": {
            "type": "string",
            "readOnly": true
          },
          "credit_score": {
            "type": "string"
          },
          "employment_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConsumerEmploymentInformationGet"
              }
            ],
            "readOnly": true
          },
          "second_look_status": {
            "type": "string",
            "readOnly": true
          },
          "servicer": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "address",
          "credit_line",
          "credit_score",
          "email",
          "employment_information",
          "expires_on_date",
          "lender",
          "lender_privacy_policy_url",
          "offer",
          "phone",
          "reasons",
          "requested_loan_amount",
          "second_look_status",
          "sensitive",
          "servicer",
          "user"
        ]
      },
      "ConsumerApplication": {
        "type": "object",
        "properties": {
          "status_detail": {
            "type": "string"
          },
          "merchant_sub_programs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "status": {
            "type": "string"
          },
          "activate_date": {
            "type": "string",
            "format": "date-time"
          },
          "merchant_name": {
            "type": "string"
          },
          "loan_number": {
            "type": "string",
            "readOnly": true
          },
          "begin_date": {
            "type": "string",
            "format": "date"
          },
          "max_approved_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "merchant_uuid": {
            "type": "string"
          },
          "sponsor": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "requested_loan_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "approved_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "purchase_window_end_date": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "recurring_payments": {
            "type": "boolean"
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_sales_rep": {
            "type": "string"
          }
        },
        "required": [
          "activate_date",
          "email",
          "loan_number",
          "merchant_name",
          "merchant_uuid",
          "name",
          "phone_number",
          "product_name",
          "requested_loan_amount"
        ]
      },
      "ConsumerApplicationStatusDetail": {
        "type": "object",
        "properties": {
          "status_detail": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "status_detail"
        ]
      },
      "ConsumerApprovedLoan": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "product_name": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "product_type": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "json_description": {
            "readOnly": true
          },
          "short_description": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "long_description": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "legal_description": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          }
        },
        "required": [
          "json_description",
          "legal_description",
          "long_description",
          "product_name",
          "product_type",
          "short_description",
          "uuid"
        ]
      },
      "ConsumerBasicInfo": {
        "type": "object",
        "description": "Mixin to allow partial updates of model instances.\nThis mixin overrides the default `update` method to allow partial updates\nof model instances, which is useful when you want to update only a subset\nof fields without requiring all fields to be provided.\nWhen using this mixin, it should be the first parent class in order to ensure\nthat this `update` method is called.",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "first_name",
          "last_name"
        ]
      },
      "ConsumerBranding": {
        "type": "object",
        "properties": {
          "brand_name": {
            "type": "string",
            "maxLength": 128
          },
          "theme_css": {},
          "footer_object": {},
          "brand_domain": {
            "type": "string",
            "maxLength": 128
          },
          "esign_disclosure_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "terms_of_use_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "privacy_policy_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "tcpa_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "legal_business_name": {
            "type": "string",
            "maxLength": 255
          },
          "consumer_chat_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "consumer_payment_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "consumer_portal_url": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "maxLength": 200
          },
          "credit_report_authorization_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "servicing_address": {
            "type": "string",
            "maxLength": 255
          },
          "header_logo_url": {
            "type": "string",
            "readOnly": true
          },
          "footer_logo_url": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "brand_name",
          "consumer_chat_url",
          "consumer_payment_url",
          "credit_report_authorization_url",
          "esign_disclosure_url",
          "footer_logo_url",
          "footer_object",
          "header_logo_url",
          "legal_business_name",
          "privacy_policy_url",
          "servicing_address",
          "tcpa_url",
          "terms_of_use_url",
          "theme_css"
        ]
      },
      "ConsumerCard": {
        "type": "object",
        "properties": {
          "card_last_4": {
            "type": "string",
            "readOnly": true
          },
          "expiration": {
            "type": "string",
            "readOnly": true
          },
          "issuer": {
            "type": "string",
            "readOnly": true
          },
          "card_brand": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "card_brand",
          "card_last_4",
          "expiration",
          "issuer"
        ]
      },
      "ConsumerCollectionsAgencySerializerDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 99
          },
          "collections_agency_phone": {
            "type": "string"
          },
          "collections_agency_email": {
            "type": "string"
          },
          "collections_agency_address": {
            "type": "string"
          }
        },
        "required": [
          "collections_agency_address",
          "collections_agency_email",
          "collections_agency_phone",
          "id",
          "name"
        ]
      },
      "ConsumerCollectionsAgencySerializerList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 99
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "ConsumerCreditEngine": {
        "type": "object",
        "properties": {
          "consumer_application_approved": {
            "type": "boolean",
            "readOnly": true,
            "default": false
          },
          "credit_line": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "readOnly": true
          },
          "reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "credit_score": {
            "type": "integer"
          },
          "declined_type": {
            "type": "string"
          }
        },
        "required": [
          "consumer_application_approved",
          "credit_line",
          "credit_score",
          "declined_type",
          "reasons"
        ]
      },
      "ConsumerEmploymentInformationGet": {
        "type": "object",
        "properties": {
          "employment_length": {
            "type": "string",
            "default": ""
          },
          "employment_status": {
            "type": "string",
            "default": ""
          },
          "phone_number_type": {
            "type": "string",
            "default": ""
          },
          "extension": {
            "type": "string",
            "default": ""
          },
          "phone_number": {
            "type": "string",
            "default": ""
          },
          "annual_income": {
            "type": "string",
            "readOnly": true
          },
          "occupation_id": {
            "type": "integer"
          }
        },
        "required": [
          "annual_income"
        ]
      },
      "ConsumerEmploymentInformationSchema": {
        "type": "object",
        "properties": {
          "employment_length": {
            "enum": [
              "Less than 1 year",
              "1-3 years",
              "3-5 years",
              "Greater than 5 years",
              null
            ],
            "type": "string",
            "description": "* `Less than 1 year` - Less than 1 year\n* `1-3 years` - 1-3 years\n* `3-5 years` - 3-5 years\n* `Greater than 5 years` - Greater than 5 years",
            "x-spec-enum-id": "8a8d1d3566cb965c",
            "nullable": true
          },
          "employment_status": {
            "enum": [
              "Employed",
              "Salaried",
              "Hourly",
              "Retired",
              "Unemployed",
              "Self-Employed",
              "Other"
            ],
            "type": "string",
            "description": "* `Employed` - Employed\n* `Salaried` - Salaried\n* `Hourly` - Hourly\n* `Retired` - Retired\n* `Unemployed` - Unemployed\n* `Self-Employed` - Self-Employed\n* `Other` - Other",
            "x-spec-enum-id": "2c58970bcb01fe00"
          },
          "phone_number_type": {
            "enum": [
              "Cell",
              "Home",
              "Main",
              "Sales",
              "Back Office",
              "Alternate",
              "Skiptrace",
              "Employer",
              "Collections Agency",
              null
            ],
            "type": "string",
            "description": "* `Cell` - Cell\n* `Home` - Home\n* `Main` - Main\n* `Sales` - Sales\n* `Back Office` - Back Office\n* `Alternate` - Alternate\n* `Skiptrace` - Skiptrace\n* `Employer` - Employer\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "fa6343f5cb6acedc",
            "nullable": true
          },
          "extension": {
            "type": "string",
            "nullable": true
          },
          "phone_number": {
            "type": "string",
            "nullable": true
          },
          "annual_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "occupation_id": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "annual_income",
          "employment_status"
        ]
      },
      "ConsumerIdInformationSensitive": {
        "type": "object",
        "properties": {
          "id_type": {
            "type": "integer",
            "nullable": true
          },
          "id_state": {
            "type": "string"
          },
          "id_country": {
            "type": "string",
            "maxLength": 255
          },
          "id_number": {
            "type": "string",
            "maxLength": 255
          },
          "id_issue_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "id_expiration_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          }
        }
      },
      "ConsumerInvitation": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "merchant": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_name": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "type": "string",
            "format": "uuid"
          },
          "lender": {
            "type": "string",
            "format": "uuid"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 128
          },
          "middle_name": {
            "type": "string",
            "maxLength": 128
          },
          "last_name": {
            "type": "string",
            "maxLength": 128
          },
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          },
          "requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "offer_code": {
            "type": "integer"
          },
          "offer_code_name": {
            "type": "string",
            "readOnly": true
          },
          "app_status_detail": {
            "type": "string",
            "readOnly": true
          },
          "source_of_invitation": {
            "enum": [
              "payment_calculator",
              "merchant_portal",
              "sponsor_api",
              "widget"
            ],
            "type": "string",
            "description": "* `payment_calculator` - Payment Calculator\n* `merchant_portal` - Merchant Portal\n* `sponsor_api` - Sponsor Api\n* `widget` - Widget",
            "x-spec-enum-id": "9e48dc939700182f",
            "default": "merchant_portal"
          }
        },
        "required": [
          "app_status_detail",
          "merchant",
          "merchant_name",
          "offer_code_name",
          "uuid"
        ]
      },
      "ConsumerInvitationMerchantPortal": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "phone": {
            "type": "string",
            "nullable": true,
            "maxLength": 128
          },
          "invited_by_merchant_user": {
            "type": "string",
            "readOnly": true
          },
          "activate_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "keep empty for an immediate activation"
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "offer_code_name": {
            "type": "string",
            "readOnly": true
          },
          "external_application_id": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          }
        },
        "required": [
          "invited_by_merchant_user",
          "modified",
          "offer_code_name"
        ]
      },
      "ConsumerInvitationReEntry": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "merchant": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_name": {
            "type": "string",
            "readOnly": true
          },
          "merchant_program": {
            "type": "string"
          },
          "lender": {
            "type": "string",
            "format": "uuid"
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 128
          },
          "middle_name": {
            "type": "string",
            "maxLength": 128
          },
          "last_name": {
            "type": "string",
            "maxLength": 128
          },
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          },
          "requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "offer_code": {
            "type": "integer"
          },
          "offer_code_name": {
            "type": "string",
            "readOnly": true
          },
          "app_status_detail": {
            "type": "string",
            "readOnly": true
          },
          "reentry_pull_decision": {
            "type": "string",
            "readOnly": true
          },
          "loan_amount_limit": {
            "type": "string",
            "readOnly": true
          },
          "user_id": {
            "type": "string",
            "readOnly": true
          },
          "app_id": {
            "type": "string",
            "readOnly": true
          },
          "is_soft_pull_api_initiated": {
            "type": "boolean"
          },
          "offer_chosen": {
            "type": "string",
            "readOnly": true
          },
          "has_sl_lender": {
            "type": "boolean",
            "readOnly": true
          },
          "cli_requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true
          }
        },
        "required": [
          "app_id",
          "app_status_detail",
          "has_sl_lender",
          "loan_amount_limit",
          "merchant",
          "merchant_name",
          "merchant_program",
          "offer_chosen",
          "offer_code_name",
          "reentry_pull_decision",
          "user_id",
          "uuid"
        ]
      },
      "ConsumerInvitationTestOTPErrorResponse": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "detail"
        ]
      },
      "ConsumerInvitationTestOTPResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          }
        },
        "required": [
          "code"
        ]
      },
      "ConsumerInviteToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "token"
        ]
      },
      "ConsumerLoanPaymentRefund": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          }
        }
      },
      "ConsumerManualTransactionTransfer": {
        "type": "object",
        "properties": {
          "destination_account": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "destination_account",
          "note"
        ]
      },
      "ConsumerMerchant": {
        "type": "object",
        "properties": {
          "merchant_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "sponsor": {
            "type": "string"
          },
          "initiated_by_name": {
            "type": "string"
          },
          "initiated_by_email": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          }
        },
        "required": [
          "display_name",
          "initiated_by_email",
          "initiated_by_name",
          "merchant_uuid",
          "name"
        ]
      },
      "ConsumerMoovDropOAuth": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          },
          "oauth_token": {
            "type": "string"
          },
          "postal_code": {
            "type": "string"
          },
          "holder_name": {
            "type": "string"
          }
        },
        "required": [
          "account_id",
          "holder_name",
          "oauth_token",
          "postal_code"
        ]
      },
      "ConsumerNonCashTransaction": {
        "type": "object",
        "properties": {
          "transaction_type": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "effective_date",
          "note",
          "transaction_amount",
          "transaction_type"
        ]
      },
      "ConsumerNonCashTransactionDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "manual_transaction_type": {
            "type": "string"
          },
          "manual_transaction_status_type": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date"
          },
          "created_by": {
            "type": "string"
          },
          "effective_date": {
            "type": "string",
            "format": "date"
          },
          "modified": {
            "type": "string",
            "format": "date"
          },
          "load_date": {
            "type": "string",
            "format": "date"
          },
          "manual_transaction_status_date": {
            "type": "string",
            "format": "date"
          },
          "ae_txn_id": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648,
            "nullable": true
          },
          "excluded_by_user": {
            "type": "string"
          },
          "excluded_reason": {
            "type": "string"
          }
        },
        "required": [
          "created",
          "created_by",
          "effective_date",
          "id",
          "load_date",
          "manual_transaction_status_date",
          "manual_transaction_status_type",
          "manual_transaction_type",
          "modified"
        ]
      },
      "ConsumerNonCashTransactionUpdate": {
        "type": "object",
        "properties": {
          "transaction_status": {
            "type": "integer",
            "writeOnly": true
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "effective_date": {
            "type": "string",
            "format": "date-time",
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "effective_date",
          "note",
          "transaction_amount",
          "transaction_status"
        ]
      },
      "ConsumerNote": {
        "type": "object",
        "properties": {
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "note_type": {
            "type": "string",
            "writeOnly": true
          },
          "loan_number": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "loan_number",
          "note",
          "note_type"
        ]
      },
      "ConsumerNoteEnteredByUser": {
        "type": "object",
        "properties": {
          "entered_by_user": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "entered_by_user"
        ]
      },
      "ConsumerNoteType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "note_type": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "note_type"
        ]
      },
      "ConsumerOnboard": {
        "type": "object",
        "properties": {
          "requested_loan_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "phone_number",
          "requested_loan_amount"
        ]
      },
      "ConsumerOnboarding": {
        "type": "object",
        "properties": {
          "ach_account_number": {
            "type": "string",
            "maxLength": 17,
            "minLength": 5
          },
          "ach_routing_number": {
            "type": "string",
            "maxLength": 9,
            "minLength": 9
          },
          "bank_account_type": {
            "enum": [
              "checking",
              "savings"
            ],
            "type": "string",
            "description": "* `checking` - checking\n* `savings` - savings",
            "x-spec-enum-id": "e345011d0e810980"
          }
        },
        "required": [
          "ach_account_number",
          "ach_routing_number",
          "bank_account_type"
        ]
      },
      "ConsumerPayBillBulkUpdate": {
        "type": "object",
        "properties": {
          "bulk_load_file": {
            "type": "string",
            "format": "uri",
            "writeOnly": true
          },
          "created": {
            "type": "string",
            "readOnly": true
          },
          "failed": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "bulk_load_file",
          "created",
          "failed"
        ]
      },
      "ConsumerPayment": {
        "type": "object",
        "properties": {
          "account_holder_name": {
            "type": "string"
          },
          "brand_name": {
            "type": "string"
          },
          "support_phone": {
            "type": "string"
          }
        },
        "required": [
          "account_holder_name",
          "brand_name",
          "support_phone"
        ]
      },
      "ConsumerPaymentRequestCreate": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "nullable": true,
            "maxLength": 128
          },
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "transaction_type": {
            "enum": [
              109,
              111,
              113
            ],
            "type": "integer",
            "description": "* `109` - 109\n* `111` - 111\n* `113` - 113",
            "x-spec-enum-id": "31f065544bcb97d1"
          }
        },
        "required": [
          "amount",
          "phone",
          "transaction_type"
        ]
      },
      "ConsumerPaymentRequestDecisionResponse": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "detail"
        ]
      },
      "ConsumerPaymentRequestList": {
        "type": "object",
        "properties": {
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "deactivate_date": {
            "type": "string",
            "format": "date-time"
          },
          "amount": {
            "type": "string",
            "readOnly": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "transaction_type": {
            "type": "string",
            "default": ""
          },
          "sms_status": {
            "type": "string",
            "maxLength": 20
          },
          "merchant_name": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "request_status_detail": {
            "$ref": "#/components/schemas/RequestStatusDetail"
          }
        },
        "required": [
          "amount",
          "created",
          "deactivate_date",
          "is_active",
          "merchant_name",
          "request_status_detail",
          "status"
        ]
      },
      "ConsumerPortalAccountRegistration": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "writeOnly": true
          },
          "confirm_password": {
            "type": "string",
            "writeOnly": true
          },
          "token": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "confirm_password",
          "password",
          "token"
        ]
      },
      "ConsumerPortalCustomTokenObtain": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "writeOnly": true
          },
          "password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "ConsumerPortalStatus": {
        "type": "object",
        "properties": {
          "created": {
            "type": "boolean",
            "readOnly": true
          },
          "bank_account_added": {
            "type": "string",
            "readOnly": true
          },
          "portal_account_status": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "bank_account_added",
          "created",
          "portal_account_status"
        ]
      },
      "ConsumerPrepopulateCobInfo": {
        "type": "object",
        "properties": {
          "dob": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "address_type": {
            "type": "string",
            "readOnly": true
          },
          "address_1": {
            "type": "string",
            "readOnly": true
          },
          "zip_code": {
            "type": "string",
            "readOnly": true
          },
          "city": {
            "type": "string",
            "readOnly": true
          },
          "state": {
            "type": "string",
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "readOnly": true
          },
          "middle_name": {
            "type": "string",
            "readOnly": true
          },
          "last_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "address_1",
          "address_type",
          "city",
          "dob",
          "first_name",
          "last_name",
          "middle_name",
          "state",
          "zip_code"
        ]
      },
      "ConsumerRecurringPaymentsSettings": {
        "type": "object",
        "properties": {
          "custom_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,17}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "custom_day_of_month": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648,
            "nullable": true
          }
        }
      },
      "ConsumerRefund": {
        "type": "object",
        "properties": {
          "payment_identifier": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              }
            ]
          },
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          }
        },
        "required": [
          "amount",
          "payment_identifier"
        ]
      },
      "ConsumerRefundableTransactionList": {
        "type": "object",
        "properties": {
          "transaction_description": {
            "type": "string",
            "maxLength": 255
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "submitted_by": {
            "type": "string",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          },
          "max_refundable_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "refunded_transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerRefundedTransactionList"
            },
            "readOnly": true
          }
        },
        "required": [
          "created",
          "max_refundable_amount",
          "refunded_transactions",
          "submitted_by",
          "transaction_amount",
          "transaction_description"
        ]
      },
      "ConsumerRefundedTransactionList": {
        "type": "object",
        "properties": {
          "transaction_description": {
            "type": "string",
            "maxLength": 255
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "submitted_by": {
            "type": "string",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          }
        },
        "required": [
          "created",
          "submitted_by",
          "transaction_amount",
          "transaction_description"
        ]
      },
      "ConsumerSensitive": {
        "type": "object",
        "properties": {
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "ssn": {
            "type": "string",
            "maxLength": 255
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          }
        }
      },
      "ConsumerSensitivePin": {
        "type": "object",
        "properties": {
          "security_pin": {
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "security_pin"
        ]
      },
      "ConsumerServicerStatus": {
        "type": "object",
        "properties": {
          "has_servicer_loan": {
            "type": "boolean",
            "readOnly": true
          },
          "has_servicer_user_account": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "required": [
          "has_servicer_loan",
          "has_servicer_user_account"
        ]
      },
      "ConsumerSettledUpdate": {
        "type": "object",
        "properties": {
          "payment_identifier": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              }
            ]
          }
        },
        "required": [
          "payment_identifier"
        ]
      },
      "ConsumerStagedFundingChargeHistory": {
        "type": "object",
        "properties": {
          "charge_type": {
            "type": "string",
            "readOnly": true
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "effective_date": {
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "charge_type",
          "effective_date",
          "transaction_amount"
        ]
      },
      "ConsumerStagedFundingChargeHistoryResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerStagedFundingChargeHistory"
            }
          }
        },
        "required": [
          "results"
        ]
      },
      "ConsumerStatement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "statement_date": {
            "type": "string",
            "format": "date"
          },
          "statement_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "due_date": {
            "type": "string",
            "format": "date"
          },
          "url": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "due_date",
          "id",
          "statement_balance",
          "statement_date",
          "url"
        ]
      },
      "ConsumerStatementDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "consumer_statement_link": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "consumer_statement_link",
          "id"
        ]
      },
      "ConsumerStatementList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "statement_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "nullable": true
          }
        },
        "required": [
          "id",
          "statement_date"
        ]
      },
      "ConsumerTransaction": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "type": {
            "type": "string"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string"
          },
          "payment_id": {
            "type": "string"
          },
          "group": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "amount",
          "date",
          "group",
          "payment_id",
          "status",
          "type"
        ]
      },
      "ConsumerTransactionAdjustmentDebit": {
        "type": "object",
        "properties": {
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "payment_provider": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "payment_identifier": {
            "type": "string"
          },
          "original_transaction_group": {
            "type": "integer"
          }
        },
        "required": [
          "effective_date",
          "note",
          "original_transaction_group",
          "payment_identifier",
          "payment_provider",
          "transaction_amount"
        ]
      },
      "ConsumerTransactionConsumerCharge": {
        "type": "object",
        "properties": {
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "payment_provider": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "transaction_type": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648,
            "writeOnly": true
          },
          "momnt_merchant_fee_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "momnt_payment_identifier": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 64
          }
        },
        "required": [
          "effective_date",
          "momnt_merchant_fee_amount",
          "momnt_payment_identifier",
          "note",
          "payment_provider",
          "transaction_amount",
          "transaction_type"
        ]
      },
      "ConsumerTransactionConsumerLoanPaymentRefund": {
        "type": "object",
        "properties": {
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "payment_provider": {
            "type": "integer"
          },
          "payment_identifier": {
            "type": "string"
          },
          "original_transaction_group": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "effective_date",
          "note",
          "payment_identifier",
          "payment_provider",
          "transaction_amount"
        ]
      },
      "ConsumerTransactionConsumerRefund": {
        "type": "object",
        "properties": {
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "momnt_merchant_fee_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "momnt_payment_identifier": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 64
          },
          "payment_provider": {
            "type": "integer"
          },
          "original_transaction_group": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "effective_date",
          "momnt_merchant_fee_amount",
          "momnt_payment_identifier",
          "note",
          "original_transaction_group",
          "payment_provider",
          "transaction_amount"
        ]
      },
      "ConsumerTransactionExclusionReason": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ]
      },
      "ConsumerTransactionGroup": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "original_transaction_amount": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name",
          "original_transaction_amount"
        ]
      },
      "ConsumerTransactionInformation": {
        "type": "object",
        "properties": {
          "consumer_account": {
            "type": "string"
          },
          "merchant": {
            "type": "string"
          },
          "lender": {
            "type": "string"
          },
          "payment_provider": {
            "type": "string",
            "readOnly": true
          },
          "transaction_type": {
            "type": "string",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "readOnly": true
          },
          "transaction_status": {
            "type": "string",
            "readOnly": true
          },
          "transaction_status_reason": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "payment_identifier",
          "payment_provider",
          "transaction_status",
          "transaction_status_reason",
          "transaction_type"
        ]
      },
      "ConsumerTransactionLoanPayment": {
        "type": "object",
        "properties": {
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "payment_provider": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "payment_identifier": {
            "type": "string"
          }
        },
        "required": [
          "effective_date",
          "note",
          "payment_identifier",
          "payment_provider",
          "transaction_amount"
        ]
      },
      "ConsumerTransactionWithMerchant": {
        "type": "object",
        "properties": {
          "ach_return_details": {
            "type": "string",
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "transaction_request_date": {
            "type": "string",
            "format": "date"
          },
          "transaction_request_time": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_type": {
            "type": "string",
            "default": ""
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "initiated_by": {
            "type": "string"
          },
          "approved_by_phone": {
            "type": "string",
            "readOnly": true
          },
          "transaction_status": {
            "type": "string",
            "default": ""
          },
          "repay_status": {
            "type": "string",
            "default": ""
          },
          "is_non_cash_transaction": {
            "type": "boolean",
            "default": false
          },
          "is_excluded": {
            "type": "string",
            "readOnly": true
          },
          "is_payment_request": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "ach_return_details",
          "approved_by_phone",
          "id",
          "is_excluded",
          "transaction_amount",
          "transaction_request_date",
          "transaction_request_time"
        ]
      },
      "ConsumerTransactionWithMomnt": {
        "type": "object",
        "properties": {
          "ach_return_details": {
            "type": "string",
            "readOnly": true
          },
          "id": {
            "type": "integer"
          },
          "date": {
            "type": "string",
            "format": "date"
          },
          "time": {
            "type": "string",
            "format": "date-time"
          },
          "payment_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "payment_identifier": {
            "type": "string",
            "default": ""
          },
          "transaction_description": {
            "type": "string",
            "readOnly": true
          },
          "transaction_status": {
            "type": "string",
            "default": ""
          },
          "repay_status": {
            "type": "string",
            "default": ""
          },
          "is_non_cash_transaction": {
            "type": "boolean",
            "default": false
          },
          "is_excluded": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "ach_return_details",
          "date",
          "id",
          "is_excluded",
          "payment_amount",
          "time",
          "transaction_description"
        ]
      },
      "ConsumerUnsignedElementsMembershipAgreementResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ]
      },
      "ConsumerUpdateInfo": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "ssn": {
            "type": "string"
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        },
        "required": [
          "dob",
          "first_name",
          "gross_income",
          "last_name",
          "security_pin",
          "ssn"
        ]
      },
      "ConversionAgreement": {
        "type": "object",
        "properties": {
          "object_key": {
            "type": "string"
          },
          "loan_number": {
            "type": "string",
            "readOnly": true
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "nullable": true
          },
          "date": {
            "type": "string",
            "format": "date",
            "readOnly": true,
            "nullable": true
          }
        },
        "required": [
          "date",
          "loan_number",
          "object_key",
          "timestamp"
        ]
      },
      "CreateConsumerPassword": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "readOnly": true
          },
          "password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "password",
          "token"
        ]
      },
      "CurrentUser": {
        "type": "object",
        "properties": {
          "ach_provider": {
            "type": "string",
            "readOnly": true
          },
          "has_payment_method": {
            "type": "string",
            "readOnly": true
          },
          "loans": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "user_id": {
            "type": "integer"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "verification_direct_number": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "ach_provider",
          "email",
          "first_name",
          "has_payment_method",
          "last_name",
          "loans",
          "user_id",
          "verification_direct_number"
        ]
      },
      "CustomFieldsCheckReturn": {
        "type": "object",
        "properties": {
          "Email": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "CustomTokenObtain": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "writeOnly": true
          },
          "password": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "email",
          "password"
        ]
      },
      "DQStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "is_dq": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "is_dq",
          "name"
        ]
      },
      "Data": {
        "type": "object",
        "properties": {
          "bankAccountID": {
            "type": "string",
            "format": "uuid"
          },
          "accountID": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "enum": [
              "verified",
              "verificationFailed",
              "pending",
              "errored"
            ],
            "type": "string",
            "description": "* `verified` - verified\n* `verificationFailed` - verificationFailed\n* `pending` - pending\n* `errored` - errored",
            "x-spec-enum-id": "0a428a24854ff277"
          }
        },
        "required": [
          "accountID",
          "bankAccountID"
        ]
      },
      "Default": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "enum": [
              "card",
              "bank"
            ],
            "type": "string",
            "description": "* `card` - card\n* `bank` - bank",
            "x-spec-enum-id": "a542bc5ea6bba918"
          }
        },
        "required": [
          "id",
          "type"
        ]
      },
      "DetailResponse": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string"
          }
        },
        "required": [
          "detail"
        ]
      },
      "DetailSchema": {
        "type": "object",
        "properties": {
          "payment_request_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "consumer_application_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "consumer_application_uuid",
          "payment_request_uuid"
        ]
      },
      "DetailType": {
        "description": "Helper enum for available detail types.",
        "enum": [
          "EMAIL_WEBHOOK_EVENT_RECEIVED",
          "EMAIL_COPY_STORED",
          "EMAIL_VERIFICATION_PERFORMED",
          "EMAIL_SENT",
          "EMAILING_SEND_EMAIL",
          "DW_MERCHANT_CRM_ID_UPDATE",
          "DW_MERCHANT_USER_CRM_ID_UPDATE",
          "DW_IFS_JOB_EVENT",
          "DOC_GEN_ELEMENTS_MEMBERSHIP_AGREEMENT_PDF",
          "DOC_GEN_UNSIGNED_ELEMENTS_MEMBERSHIP_AGREEMENT_PDF",
          "DOC_GEN_MERCHANT_AGREEMENT_PDF",
          "DOC_GEN_AAN_DECLINE_PDF",
          "DOC_GEN_AAN_APPROVED_FOR_LESS_PDF",
          "DOC_GEN_LOAN_AGREEMENT_PDF",
          "BELLE_CALLBACK_DOC_GEN_ELEMENTS_PDF",
          "BELLE_CALLBACK_DOC_GEN_UNSIGNED_ELEMENTS_PDF",
          "BELLE_CALLBACK_DOC_GEN_MERCHANT_AGREEMENT_PDF",
          "BELLE_CALLBACK_DOC_GEN_AAN_DECLINE_PDF",
          "BELLE_CALLBACK_DOC_GEN_AAN_APPROVED_FOR_LESS_PDF",
          "BELLE_CALLBACK_DOC_GEN_LOAN_AGREEMENT_PDF",
          "MANUALLY_INITIATED_BANK_ACCOUNT_CREATED",
          "PLAID_INITIATED_BANK_ACCOUNT_CREATED",
          "MERCHANT_USER_REWARD_ID_UPDATE",
          "MERCHANT_USER_STATUS_UPDATE",
          "RBL_HIT",
          "CONSUMER_APPLICATION_STATE_TRACKING",
          "CONSUMER_ONBOARDING_SOCURE_WEBHOOK_RESPONSE",
          "CONSUMER_ONBOARDING_USER_INFORMATION_UPDATE",
          "CONSUMER_TRANSACTION_COMPLETED",
          "LOAN_ACCEPTED",
          "USER_NOTIFICATION",
          "PING",
          "EXTERNAL_API_CALLED",
          "CONCORD_OBLIGATION_CREATED",
          "CONCORD_TRANSACTION_CREATED",
          "SFTP_TRANSFER_REQUEST",
          "SFTP_TRANSFER_OUTCOME"
        ],
        "title": "DetailType",
        "type": "string"
      },
      "DocumentVerificationStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "origId": {
            "type": "string",
            "format": "uuid"
          },
          "eventGroup": {
            "type": "string"
          },
          "reason": {
            "enum": [
              "WAITING_FOR_USER_TO_REDIRECT",
              "APP_OPENED",
              "DOCUMENT_FRONT_UPLOADED",
              "DOCUMENT_BACK_UPLOADED",
              "DOCUMENT_SELFIE_UPLOADED",
              "DOCUMENTS_UPLOADED",
              "VERIFICATION_COMPLETED",
              "RESUBMIT",
              "SESSION_EXPIRED",
              "SESSION_COMPLETE"
            ],
            "type": "string",
            "description": "* `WAITING_FOR_USER_TO_REDIRECT` - WAITING_FOR_USER_TO_REDIRECT\n* `APP_OPENED` - APP_OPENED\n* `DOCUMENT_FRONT_UPLOADED` - DOCUMENT_FRONT_UPLOADED\n* `DOCUMENT_BACK_UPLOADED` - DOCUMENT_BACK_UPLOADED\n* `DOCUMENT_SELFIE_UPLOADED` - DOCUMENT_SELFIE_UPLOADED\n* `DOCUMENTS_UPLOADED` - DOCUMENTS_UPLOADED\n* `VERIFICATION_COMPLETED` - VERIFICATION_COMPLETED\n* `RESUBMIT` - RESUBMIT\n* `SESSION_EXPIRED` - SESSION_EXPIRED\n* `SESSION_COMPLETE` - SESSION_COMPLETE",
            "x-spec-enum-id": "cf9a13616848368c"
          },
          "environmentName": {
            "type": "string"
          },
          "event": {}
        },
        "required": [
          "environmentName",
          "event",
          "eventGroup",
          "id",
          "origId",
          "reason"
        ]
      },
      "EPConsumerNote": {
        "type": "object",
        "properties": {
          "entered_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "entered_by_user": {
            "type": "string",
            "readOnly": true
          },
          "note_type": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "entered_by_user",
          "entered_on",
          "note",
          "note_type"
        ]
      },
      "EPConsumerOnboarding": {
        "type": "object",
        "properties": {
          "ach_account_number": {
            "type": "string",
            "maxLength": 17,
            "minLength": 5
          },
          "ach_routing_number": {
            "type": "string",
            "maxLength": 9,
            "minLength": 9
          },
          "bank_account_type": {
            "enum": [
              "checking",
              "savings"
            ],
            "type": "string",
            "description": "* `checking` - checking\n* `savings` - savings",
            "x-spec-enum-id": "e345011d0e810980"
          }
        },
        "required": [
          "ach_account_number",
          "ach_routing_number",
          "bank_account_type"
        ]
      },
      "EligibleTransferAccount": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string"
          },
          "loan_number": {
            "type": "string",
            "title": "Application ID/Loan number",
            "maxLength": 28
          },
          "user": {
            "type": "string"
          },
          "account_status": {
            "type": "string"
          }
        },
        "required": [
          "account_status",
          "loan_number",
          "user",
          "uuid"
        ]
      },
      "Email": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          }
        },
        "required": [
          "email"
        ]
      },
      "EmailLookup": {
        "type": "object",
        "description": "Email serializer without domain validation.\n\nUse on endpoints where the email is a lookup key for an *existing*\nrecord and a strict reject would only block legitimate access — login,\npassword reset (anti-enumeration), re-invite, inbound webhooks.\n\nUse ``EmailSerializer`` (strict) on endpoints that persist the email\n*or* gate a downstream save (e.g. format-validation views, lookup-\nbefore-create checks). Otherwise the user advances past validation\nand fails at the save step with no inline feedback.",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          }
        },
        "required": [
          "email"
        ]
      },
      "EnterpriseMerchantStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "EnterpriseRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "EnterpriseSponsor": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "EnterpriseUser": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "userid": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnterpriseUserRole"
            }
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "is_active": {
            "type": "boolean"
          }
        },
        "required": [
          "email",
          "first_name",
          "is_active",
          "last_name",
          "roles"
        ]
      },
      "EnterpriseUserRole": {
        "type": "object",
        "properties": {
          "role_id": {
            "type": "integer"
          }
        },
        "required": [
          "role_id"
        ]
      },
      "EventBusName": {
        "description": "Enumeration of supported EventBridge event bus names.\n\nThis enum defines logical identifiers for different AWS EventBridge buses\nused within the system to route events based on context or usage.\n\nAttributes:\nAPPLICATION (str): Event bus used for application-specific events.\nDEFAULT (str): Default event bus.\nEVENT_PATTERNS_EXAMPLE_LAMBDA_CONSUMER (str): Event bus used for the example lambda consumer.",
        "enum": [
          "application",
          "default",
          "event-patterns-lambda-consumer-event-bus"
        ],
        "title": "EventBusName",
        "type": "string"
      },
      "EventDataCardSale": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RequestCardSale"
          },
          "result": {
            "$ref": "#/components/schemas/ResultCardSale"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "request",
          "result",
          "timestamp"
        ]
      },
      "EventDataCheckReturn": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RequestCheckReturn"
          },
          "result": {
            "$ref": "#/components/schemas/ResultCheckReturn"
          }
        },
        "required": [
          "request",
          "result"
        ]
      },
      "EventDataCheckSale": {
        "type": "object",
        "properties": {
          "request": {
            "$ref": "#/components/schemas/RequestCheckSale"
          },
          "result": {
            "$ref": "#/components/schemas/ResultCheckSale"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "request",
          "result",
          "timestamp"
        ]
      },
      "EventMetaDataCardSale": {
        "type": "object",
        "properties": {
          "event_type": {
            "type": "string"
          }
        },
        "required": [
          "event_type"
        ]
      },
      "EventMetaDataCheckReturn": {
        "type": "object",
        "properties": {
          "event_type": {
            "type": "string"
          }
        },
        "required": [
          "event_type"
        ]
      },
      "ExtStatusTransaction": {
        "type": "object",
        "properties": {
          "transaction_amount": {
            "type": "integer",
            "maximum": 4,
            "minimum": 0
          },
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        },
        "required": [
          "effective_date",
          "note",
          "transaction_amount"
        ]
      },
      "ExternalOfferCodeCreateSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "format": "uuid",
            "description": "External Partner user ID of an existing user set up at Momnt who creating the Offer Code.\nThis user must be an active merchant admin user for the Merchant used in the contractor_id path."
          },
          "name": {
            "type": "string",
            "description": "The name of the Offer Code. Alpha string between 2 and 80 characters. Spaces are allowed.",
            "maxLength": 80,
            "minLength": 2
          },
          "is_active": {
            "type": "boolean",
            "description": "Boolean field indication whether the merchant wants this Offer Code turned on or not after creation."
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {},
            "description": "The value of the rate_sheet_merchant_product_price_id (found in the Merchant Rate Sheet Query)\nof the products the Merchant wants to add to this rate sheet.",
            "maxItems": 7,
            "minItems": 2
          }
        },
        "required": [
          "name",
          "rate_sheet_merchant_product_prices",
          "request_user_id"
        ]
      },
      "ExternalOfferCodeRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantRateSheetProductPrice"
            }
          }
        },
        "required": [
          "id",
          "name",
          "rate_sheet_merchant_product_prices"
        ]
      },
      "ExternalOfferCodeUpdateResponseSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "format": "uuid",
            "description": "External Partner user ID of an existing user set up at Momnt who creating the Offer Code.\nThis user must be an active merchant admin user for the Merchant used in the contractor_id path."
          },
          "name": {
            "type": "string",
            "description": "The name of the Offer Code. Alpha string between 2 and 80 characters. Spaces are allowed.",
            "maxLength": 80,
            "minLength": 2
          },
          "is_active": {
            "type": "boolean",
            "description": "Boolean field indication whether the merchant wants this Offer Code turned on or not after creation."
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {},
            "description": "The value of the rate_sheet_merchant_product_price_id (found in the Merchant Rate Sheet Query)\nof the products the Merchant wants to add to this rate sheet."
          },
          "message": {
            "type": "string",
            "description": "Used on the response to return a message when the offer code name is changed.\nAnd it will be the only field when the offer code is removed."
          }
        },
        "required": [
          "name"
        ]
      },
      "FailedRuleReason": {
        "type": "object",
        "properties": {
          "RuleName": {
            "type": "string"
          },
          "Rule": {
            "type": "string"
          },
          "Data": {
            "type": "string"
          },
          "Result": {
            "type": "boolean"
          },
          "FailedComplianceID": {
            "type": "integer"
          }
        },
        "required": [
          "Data",
          "FailedComplianceID",
          "Result",
          "Rule",
          "RuleName"
        ]
      },
      "FeatureFlag": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255,
            "pattern": "^[-a-zA-Z0-9_]+$"
          }
        },
        "required": [
          "name"
        ]
      },
      "FeatureFlagItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "value": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "value"
        ]
      },
      "FeatureFlagListResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeatureFlagItem"
            }
          }
        },
        "required": [
          "count",
          "results"
        ]
      },
      "FinalCharge": {
        "type": "object",
        "properties": {
          "min_percentage": {
            "type": "integer"
          },
          "days_between": {
            "type": "integer",
            "default": 0
          }
        },
        "required": [
          "min_percentage"
        ]
      },
      "FraudGucaHitResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "guca_response": {
            "type": "string"
          },
          "address_id": {
            "type": "integer"
          },
          "consumer_account_id": {
            "type": "integer"
          },
          "consumer_application_matched_id": {
            "type": "integer"
          },
          "consumer_invitation_id": {
            "type": "integer"
          },
          "email_id": {
            "type": "integer"
          },
          "merchant_id": {
            "type": "integer"
          },
          "merchant_owner_id": {
            "type": "integer"
          },
          "merchant_user_id": {
            "type": "integer"
          },
          "phone_number_id": {
            "type": "integer"
          },
          "sensitive_id": {
            "type": "integer"
          },
          "consumer_account_in_good_standing": {
            "type": "boolean"
          },
          "ssn_match": {
            "type": "boolean"
          },
          "ssn_matched_credit_limit": {
            "type": "integer"
          },
          "tu_ssn_match": {
            "type": "boolean"
          },
          "tu_ssn_matched_credit_limit": {
            "type": "integer"
          },
          "consumer_application_submitted_id": {
            "type": "integer"
          },
          "merchant_application_submitted_id": {
            "type": "integer"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "address_id",
          "consumer_account_id",
          "consumer_account_in_good_standing",
          "consumer_application_matched_id",
          "consumer_application_submitted_id",
          "consumer_invitation_id",
          "email_id",
          "guca_response",
          "id",
          "merchant_application_submitted_id",
          "merchant_id",
          "merchant_owner_id",
          "merchant_user_id",
          "phone_number_id",
          "sensitive_id",
          "ssn_match",
          "ssn_matched_credit_limit",
          "timestamp",
          "tu_ssn_match",
          "tu_ssn_matched_credit_limit"
        ]
      },
      "Guca": {
        "type": "object",
        "properties": {
          "merchant": {
            "type": "string"
          },
          "merchant_owner": {
            "type": "string"
          },
          "merchant_application": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_invitation": {
            "type": "boolean"
          },
          "consumer_application": {
            "type": "string",
            "format": "uuid"
          },
          "consumer_invitation": {
            "type": "boolean"
          },
          "consumer_account": {
            "type": "string"
          },
          "phone_number": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "address": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressUser"
            }
          },
          "ssn": {
            "type": "string"
          },
          "merchant_user": {
            "type": "string"
          },
          "originating_merchant": {
            "type": "string"
          },
          "check_against_consumer": {
            "type": "boolean"
          },
          "check_against_merchant": {
            "type": "boolean"
          }
        }
      },
      "IdType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "ordinal": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648,
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "InitialCharge": {
        "type": "object",
        "properties": {
          "max_percentage": {
            "type": "integer"
          }
        },
        "required": [
          "max_percentage"
        ]
      },
      "LenderAddress": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "address": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "address",
          "name"
        ]
      },
      "LenderAllocation": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "lender_status": {
            "type": "integer",
            "nullable": true
          },
          "address": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "address",
          "name",
          "uuid"
        ]
      },
      "LoanDetails": {
        "type": "object",
        "properties": {
          "loan_number": {
            "type": "string",
            "readOnly": true
          },
          "promotion_end_date": {
            "type": "string",
            "readOnly": true
          },
          "loan_details": {
            "type": "string",
            "readOnly": true
          },
          "recurring_payments": {
            "type": "boolean",
            "nullable": true
          },
          "lender": {
            "type": "string",
            "readOnly": true
          },
          "product_description": {
            "type": "string",
            "readOnly": true
          },
          "product_details": {
            "type": "string",
            "readOnly": true
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "current_amount_spent": {
            "type": "number",
            "format": "double"
          },
          "remaining_balance": {
            "type": "number",
            "format": "double"
          },
          "apr": {
            "type": "string",
            "readOnly": true
          },
          "origination_date": {
            "type": "string",
            "format": "date-time"
          },
          "purchase_window_end_date": {
            "type": "string",
            "readOnly": true
          },
          "merchant": {
            "type": "string"
          },
          "merchant_dba": {
            "type": "string"
          },
          "merchant_human_readable_id": {
            "type": "string"
          },
          "merchant_uuid": {
            "type": "string"
          },
          "credit_limit": {
            "type": "number",
            "format": "double"
          },
          "payoff_amount": {
            "type": "string",
            "readOnly": true
          },
          "merchant_phone_number": {
            "type": "string",
            "readOnly": true
          },
          "total_term": {
            "type": "string",
            "readOnly": true
          },
          "amortizing_term": {
            "type": "string",
            "readOnly": true
          },
          "promotional_term": {
            "type": "string",
            "readOnly": true
          },
          "payment_amount_after_promotion": {
            "type": "string",
            "readOnly": true
          },
          "payment_amount_during_promotion": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_closed_flag": {
            "type": "string",
            "readOnly": true
          },
          "borrower_agreement_pdf_exists": {
            "type": "string",
            "readOnly": true
          },
          "elements_membership_agreement_pdf_exists": {
            "type": "string",
            "readOnly": true
          },
          "po_box_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressUser"
              }
            ],
            "readOnly": true
          },
          "is_soft_pull_api_initiated": {
            "type": "boolean"
          },
          "loan_sold_to_elements": {
            "type": "string",
            "readOnly": true
          },
          "merchant_user_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "amortizing_term",
          "apr",
          "borrower_agreement_pdf_exists",
          "credit_limit",
          "current_amount_spent",
          "elements_membership_agreement_pdf_exists",
          "is_soft_pull_api_initiated",
          "lender",
          "loan_details",
          "loan_number",
          "loan_sold_to_elements",
          "merchant",
          "merchant_dba",
          "merchant_human_readable_id",
          "merchant_phone_number",
          "merchant_user_name",
          "merchant_uuid",
          "origination_date",
          "payment_amount_after_promotion",
          "payment_amount_during_promotion",
          "payoff_amount",
          "po_box_address",
          "product_description",
          "product_details",
          "product_name",
          "promotion_end_date",
          "promotional_term",
          "purchase_window_closed_flag",
          "purchase_window_end_date",
          "remaining_balance",
          "total_term"
        ]
      },
      "LoanStatusUpdated": {
        "type": "object",
        "properties": {
          "MPLId": {
            "type": "string"
          },
          "Ignore": {
            "type": "boolean"
          },
          "content": {
            "$ref": "#/components/schemas/LoanStatusUpdatedContent"
          }
        },
        "required": [
          "Ignore",
          "MPLId",
          "content"
        ]
      },
      "LoanStatusUpdatedContent": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer"
          },
          "LoanId": {
            "type": "string",
            "format": "uuid"
          },
          "Status": {
            "type": "integer"
          },
          "TimeStamp": {
            "type": "string",
            "format": "date-time"
          },
          "DateInserted": {
            "type": "string"
          }
        },
        "required": [
          "DateInserted",
          "Id",
          "LoanId",
          "Status",
          "TimeStamp"
        ]
      },
      "LoginLog": {
        "type": "object",
        "properties": {
          "login_type": {
            "type": "string",
            "readOnly": true
          },
          "datetime": {
            "type": "string",
            "format": "date-time"
          },
          "user": {
            "type": "string"
          },
          "source_of_change": {
            "type": "string",
            "readOnly": true
          },
          "remote_ip": {
            "type": "string",
            "maxLength": 50
          }
        },
        "required": [
          "datetime",
          "login_type",
          "source_of_change"
        ]
      },
      "LossMitigator": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ]
      },
      "ManualTransactionStatusTypeNameID": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "ManualTransactionTypeNameID": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "only_negative_amounts_are_allowed": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "Merchant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "program": {
            "type": "integer"
          },
          "sub_program": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "merchantowner_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantOwnerViewset"
            },
            "readOnly": true
          },
          "agreement": {
            "type": "string",
            "format": "uri"
          },
          "status": {
            "type": "integer"
          },
          "address_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "readOnly": true
          },
          "phonenumber_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            },
            "readOnly": true
          },
          "sensitive_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SensitiveRead"
            },
            "readOnly": true
          },
          "card_token_data": {
            "type": "string",
            "readOnly": true
          },
          "all_attributes": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Sponsor"
              }
            ],
            "readOnly": true
          },
          "external_org_id": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "program_uuid": {
            "type": "string",
            "readOnly": true
          },
          "display_name": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          }
        },
        "required": [
          "address_set",
          "all_attributes",
          "card_token_data",
          "id",
          "merchantowner_set",
          "name",
          "phonenumber_set",
          "program_uuid",
          "sensitive_set",
          "sponsor",
          "status"
        ]
      },
      "MerchantAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "merchant": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "begin_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "bank_account_number": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "bank_routing_number": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "current_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "card_add_response": {
            "nullable": true
          },
          "card_token_data": {
            "nullable": true
          },
          "repay_token": {
            "type": "string",
            "maxLength": 512
          },
          "is_oct": {
            "type": "boolean"
          },
          "account_type": {
            "type": "integer"
          },
          "account_status": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "account_type",
          "begin_date",
          "id",
          "merchant",
          "name",
          "uuid"
        ]
      },
      "MerchantAllAttributes": {
        "type": "object",
        "properties": {
          "legal_business_name": {
            "type": "string"
          },
          "doing_business_as": {
            "type": "string"
          },
          "website_url": {
            "type": "string"
          },
          "business_start_date": {
            "type": "string",
            "format": "date"
          },
          "annual_sales_revenue": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "average_customer_spend": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "offers_financing": {
            "type": "boolean"
          },
          "financing_volume": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "business_structure": {
            "type": "string"
          },
          "payment_types_accepted": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "federal_tax_id": {
            "type": "string"
          },
          "address_1": {
            "type": "string"
          },
          "address_2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip_code": {
            "type": "string"
          },
          "merchant_phone": {
            "type": "string"
          }
        },
        "required": [
          "address_1",
          "address_2",
          "annual_sales_revenue",
          "average_customer_spend",
          "business_start_date",
          "business_structure",
          "city",
          "doing_business_as",
          "federal_tax_id",
          "financing_volume",
          "legal_business_name",
          "merchant_phone",
          "offers_financing",
          "payment_types_accepted",
          "state",
          "website_url",
          "zip_code"
        ]
      },
      "MerchantApplicationList": {
        "type": "object",
        "properties": {
          "human_readable_id": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_name": {
            "type": "string"
          },
          "dba": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "application_status": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "application_status_date": {
            "type": "string",
            "format": "date-time"
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "sponsor": {
            "type": "string"
          },
          "reset_merchant": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "application_status",
          "application_status_date",
          "created",
          "dba",
          "human_readable_id",
          "merchant_name",
          "reset_merchant"
        ]
      },
      "MerchantApplicationRead": {
        "type": "object",
        "properties": {
          "sensitive": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantApplicationSensitive"
              }
            ],
            "readOnly": true
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantOnboarding"
              }
            ],
            "readOnly": true
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserEmailPhoneNumber"
              }
            ],
            "readOnly": true
          },
          "merchantowner_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantOwnerWithContactDataViewset"
            },
            "readOnly": true
          }
        },
        "required": [
          "merchant",
          "merchantowner_set",
          "sensitive",
          "user"
        ]
      },
      "MerchantApplicationResult": {
        "type": "object",
        "properties": {
          "merchant_application_approved": {
            "type": "string",
            "readOnly": true
          },
          "redirect_url": {
            "type": "string"
          },
          "external_merchant": {
            "type": "boolean"
          },
          "bypass_verification_hold": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "bypass_verification_hold",
          "external_merchant",
          "merchant_application_approved",
          "redirect_url"
        ]
      },
      "MerchantApplicationRetrieve": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "merchant_name": {
            "type": "string"
          },
          "merchant_uuid": {
            "type": "string",
            "readOnly": true
          },
          "dba": {
            "type": "string"
          },
          "line_of_business": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "type": "string"
          },
          "application_status": {
            "type": "string"
          },
          "application_status_reason": {
            "type": "string"
          },
          "application_status_date": {
            "type": "string",
            "format": "date-time"
          },
          "underwriting_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UnderwritingResponse"
              }
            ],
            "readOnly": true
          },
          "human_readable_id": {
            "type": "string",
            "format": "uuid"
          },
          "is_auto_approved": {
            "type": "boolean",
            "nullable": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "asr": {
            "type": "string"
          },
          "ats": {
            "type": "string"
          },
          "business_start_date": {
            "type": "string",
            "readOnly": true
          },
          "tax_id": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "owners": {
            "type": "string",
            "readOnly": true
          },
          "merchant_attributes": {
            "type": "string",
            "readOnly": true
          },
          "comprehensive_business_search": {
            "type": "string",
            "readOnly": true
          },
          "length_in_business": {
            "type": "string",
            "readOnly": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "update_status": {
            "type": "string",
            "readOnly": true
          },
          "view_notes": {
            "type": "string",
            "readOnly": true
          },
          "create_notes": {
            "type": "string",
            "readOnly": true
          },
          "view_detail": {
            "type": "string",
            "readOnly": true
          },
          "view_application_status_history": {
            "type": "string",
            "readOnly": true
          },
          "reset_merchant": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "application_status",
          "application_status_date",
          "application_status_reason",
          "asr",
          "ats",
          "business_start_date",
          "comprehensive_business_search",
          "create_notes",
          "created",
          "dba",
          "human_readable_id",
          "id",
          "length_in_business",
          "line_of_business",
          "merchant_attributes",
          "merchant_name",
          "merchant_uuid",
          "owners",
          "reset_merchant",
          "underwriting_response",
          "update_status",
          "view_application_status_history",
          "view_detail",
          "view_notes"
        ]
      },
      "MerchantApplicationSensitive": {
        "type": "object",
        "properties": {
          "ssn": {
            "type": "string",
            "maxLength": 255
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "federal_tax_id": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "MerchantApplicationUpdate": {
        "type": "object",
        "properties": {
          "application_status": {
            "type": "string"
          },
          "application_status_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "application_status_reason": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "default": ""
          }
        },
        "required": [
          "application_status",
          "application_status_reason"
        ]
      },
      "MerchantApplicationWrite": {
        "type": "object",
        "properties": {
          "application_status": {
            "type": "string"
          },
          "application_status_reason": {
            "type": "string"
          },
          "re_sent_email_sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "merchant": {
            "type": "integer"
          }
        },
        "required": [
          "application_status",
          "application_status_reason",
          "merchant"
        ]
      },
      "MerchantAttribute": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "merchant": {
            "type": "integer",
            "readOnly": true
          },
          "choices_selected": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "writeOnly": true,
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "attr_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Nested"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "attr_type",
          "choices_selected",
          "id",
          "merchant",
          "value"
        ]
      },
      "MerchantAvailableTransaction": {
        "type": "object",
        "properties": {
          "consumer_application": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "requested_loan_amount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserReadOnlyAddress"
              }
            ],
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "format": "date-time"
          },
          "human_readable_id": {
            "type": "string"
          },
          "consumer_account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConsumerAccountBalance"
              }
            ],
            "readOnly": true
          },
          "phone_number": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          }
        },
        "required": [
          "consumer_account",
          "consumer_application",
          "human_readable_id",
          "phone_number",
          "product_name",
          "purchase_window_end_date",
          "requested_loan_amount",
          "status",
          "user"
        ]
      },
      "MerchantBasicInfo": {
        "type": "object",
        "properties": {
          "merchant_name": {
            "type": "string",
            "readOnly": true
          },
          "merchant_address_line_1": {
            "type": "string",
            "readOnly": true
          },
          "merchant_address_line_2": {
            "type": "string",
            "readOnly": true
          },
          "merchant_city": {
            "type": "string",
            "readOnly": true
          },
          "merchant_state": {
            "type": "string",
            "readOnly": true
          },
          "merchant_zip_code": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "merchant_address_line_1",
          "merchant_address_line_2",
          "merchant_city",
          "merchant_name",
          "merchant_state",
          "merchant_zip_code"
        ]
      },
      "MerchantBranding": {
        "type": "object",
        "properties": {
          "brand_name": {
            "type": "string",
            "maxLength": 128
          },
          "sponsor_uuid": {
            "type": "string",
            "readOnly": true
          },
          "theme_css": {},
          "footer_object": {},
          "portal_login_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "brand_domain": {
            "type": "string",
            "maxLength": 128
          },
          "agreement_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "operating_instructions_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "esign_disclosure_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "terms_of_use_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "privacy_policy_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "tcpa_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          },
          "legal_business_name": {
            "type": "string",
            "maxLength": 255
          },
          "header_logo_url": {
            "type": "string",
            "readOnly": true
          },
          "footer_logo_url": {
            "type": "string",
            "readOnly": true
          },
          "show_thinkific_button": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "agreement_url",
          "brand_name",
          "esign_disclosure_url",
          "footer_logo_url",
          "footer_object",
          "header_logo_url",
          "legal_business_name",
          "operating_instructions_url",
          "privacy_policy_url",
          "show_thinkific_button",
          "sponsor_uuid",
          "tcpa_url",
          "terms_of_use_url",
          "theme_css"
        ]
      },
      "MerchantCommonResponse": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "message": {
            "type": "string",
            "maxLength": 255
          },
          "merchant_account_exists": {
            "type": "boolean"
          },
          "bank_account_status": {
            "type": "string",
            "maxLength": 255
          },
          "last_four": {
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "bank_account_status",
          "last_four",
          "merchant_account_exists",
          "message"
        ]
      },
      "MerchantConsumerCashTransactionDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "effective_date": {
            "type": "string",
            "format": "date"
          },
          "transaction_type": {
            "type": "string"
          },
          "created_by": {
            "type": "string"
          },
          "transaction_status": {
            "type": "string"
          },
          "repay_status": {
            "type": "string",
            "default": ""
          },
          "excluded_by_user": {
            "type": "string"
          },
          "excluded_reason": {
            "type": "string"
          }
        },
        "required": [
          "created_by",
          "effective_date",
          "id",
          "transaction_status",
          "transaction_type"
        ]
      },
      "MerchantConsumerLoanApplications": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "sent_to": {
            "type": "string",
            "readOnly": true
          },
          "date_sent": {
            "type": "string",
            "format": "date-time"
          },
          "application_id": {
            "type": "string"
          },
          "application_status": {
            "type": "string"
          },
          "application_status_detail": {
            "type": "string"
          },
          "consumer_invitation": {
            "type": "string",
            "format": "uuid"
          },
          "offer_code": {
            "type": "string"
          },
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "product_id": {
            "type": "string"
          },
          "product_details": {
            "type": "string"
          },
          "sent_by": {
            "type": "string"
          },
          "consumer_account_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "staged_funding_applied": {
            "type": "string",
            "readOnly": true
          },
          "credit_limit": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "amount",
          "application_id",
          "application_status",
          "credit_limit",
          "date_sent",
          "sent_to",
          "staged_funding_applied"
        ]
      },
      "MerchantConsumerTransaction": {
        "type": "object",
        "properties": {
          "full_name": {
            "type": "string"
          },
          "application_id": {
            "type": "string",
            "readOnly": true
          },
          "account_status": {
            "type": "string"
          },
          "transaction_description": {
            "type": "string"
          },
          "transaction_status": {
            "type": "string",
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "datetime": {
            "type": "string",
            "format": "date-time"
          },
          "submitted_by": {
            "type": "string",
            "readOnly": true
          },
          "ach_return_details": {
            "type": "string",
            "readOnly": true
          },
          "ach_amount": {
            "type": "string",
            "readOnly": true
          },
          "product_name": {
            "type": "string"
          },
          "product_description_parts": {
            "type": "string",
            "readOnly": true
          },
          "consumer_account_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "account_status",
          "ach_amount",
          "ach_return_details",
          "amount",
          "application_id",
          "consumer_account_uuid",
          "datetime",
          "full_name",
          "product_description_parts",
          "product_name",
          "submitted_by",
          "transaction_description",
          "transaction_status"
        ]
      },
      "MerchantCreateUpdate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "create_address": {
            "type": "boolean",
            "writeOnly": true
          },
          "address_1": {
            "type": "string",
            "writeOnly": true
          },
          "address_2": {
            "type": "string",
            "writeOnly": true
          },
          "city": {
            "type": "string",
            "writeOnly": true
          },
          "state": {
            "type": "string",
            "writeOnly": true
          },
          "zip": {
            "type": "string",
            "writeOnly": true
          },
          "address_verification_response": {},
          "merchant_application_uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "human_readable_id": {
            "type": "string",
            "readOnly": true
          },
          "merchant_phone": {
            "type": "string"
          },
          "sponsor": {
            "type": "string",
            "format": "uuid"
          },
          "program_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "human_readable_id",
          "id",
          "merchant_application_uuid",
          "name",
          "uuid"
        ]
      },
      "MerchantInviteToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "token"
        ]
      },
      "MerchantInvoice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "merchant": {
            "type": "integer",
            "readOnly": true
          },
          "total": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "number": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "paid_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "notes": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          }
        },
        "required": [
          "balance",
          "created",
          "date",
          "id",
          "merchant",
          "modified",
          "number",
          "status",
          "total"
        ]
      },
      "MerchantLoanApplicationDetail": {
        "type": "object",
        "properties": {
          "consumer_application": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "can_transact_with_the_merchant": {
            "type": "string",
            "readOnly": true
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "user": {
            "$ref": "#/components/schemas/UserReadOnlyAddress"
          },
          "consumer_account": {
            "$ref": "#/components/schemas/ConsumerAccountLoanApplication"
          },
          "staged_funding": {
            "type": "string",
            "readOnly": true
          },
          "origination_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "is_eligible_for_charge_requests": {
            "type": "boolean",
            "readOnly": true
          },
          "is_eligible_for_refunds": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "required": [
          "can_transact_with_the_merchant",
          "consumer_application",
          "is_eligible_for_charge_requests",
          "is_eligible_for_refunds",
          "phone_number",
          "purchase_window_end_date",
          "staged_funding",
          "status",
          "user"
        ]
      },
      "MerchantLoanApplicationList": {
        "type": "object",
        "properties": {
          "consumer_application": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "credit_limit": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "user": {
            "$ref": "#/components/schemas/UserWithEmail"
          }
        },
        "required": [
          "consumer_application",
          "created",
          "credit_limit",
          "modified",
          "product_name",
          "status",
          "user"
        ]
      },
      "MerchantLocationHierarchy": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "merchant_uuid": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "MerchantNote": {
        "type": "object",
        "properties": {
          "entered_by_user": {
            "type": "string",
            "readOnly": true
          },
          "entered_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "note": {
            "type": "string"
          },
          "note_type": {
            "$ref": "#/components/schemas/MerchantNoteType"
          },
          "merchant_application": {
            "type": "string",
            "format": "uuid",
            "writeOnly": true
          }
        },
        "required": [
          "entered_by_user",
          "entered_on",
          "merchant_application",
          "note",
          "note_type"
        ]
      },
      "MerchantNoteType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "note_type": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "note_type"
        ]
      },
      "MerchantOnboarding": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "program": {
            "type": "string"
          },
          "sub_program": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "merchant_attributes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantOnboardingAttributes"
              }
            ],
            "readOnly": true
          },
          "business_phone_number": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "address_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "readOnly": true
          }
        },
        "required": [
          "address_set",
          "business_phone_number",
          "merchant_attributes",
          "name",
          "program",
          "sub_program"
        ]
      },
      "MerchantOnboardingAttributes": {
        "type": "object",
        "properties": {
          "website_url": {
            "type": "string",
            "nullable": true
          },
          "business_start_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "annual_sales_revenue": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "average_customer_spend": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "offers_financing": {
            "type": "boolean",
            "nullable": true
          },
          "financing_volume": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "business_structure": {
            "type": "string",
            "nullable": true
          },
          "payment_types_accepted": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": true
            }
          },
          "length_in_business": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "annual_sales_revenue",
          "average_customer_spend",
          "business_start_date",
          "business_structure",
          "financing_volume",
          "length_in_business",
          "offers_financing",
          "payment_types_accepted",
          "website_url"
        ]
      },
      "MerchantOnboardingUser": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "mobile": {
            "type": "string",
            "writeOnly": true
          },
          "token": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "email",
          "first_name",
          "id",
          "last_name",
          "mobile",
          "token"
        ]
      },
      "MerchantOpportunities": {
        "type": "object",
        "properties": {
          "consumer_application_uuid": {
            "type": "string",
            "format": "uuid",
            "default": ""
          },
          "consumer_invitation_uuid": {
            "type": "string",
            "format": "uuid",
            "default": ""
          },
          "sent_to": {
            "type": "string"
          },
          "id_number": {
            "type": "string",
            "default": ""
          },
          "available_spend": {
            "type": "string",
            "readOnly": true
          },
          "amount_spent": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "amount_spent",
          "available_spend",
          "purchase_window_end_date",
          "sent_to"
        ]
      },
      "MerchantOwner": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "address": {
            "type": "string",
            "readOnly": true
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "ssn": {
            "type": "string",
            "readOnly": true
          },
          "dob": {
            "type": "string",
            "readOnly": true
          },
          "security_pin": {
            "type": "string",
            "readOnly": true
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,5}(?:\\.\\d{0,0})?$"
          },
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "merchant_application": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Nested"
              }
            ],
            "readOnly": true
          },
          "merchant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Nested"
              }
            ],
            "readOnly": true
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Nested"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "address",
          "dob",
          "email",
          "first_name",
          "id",
          "last_name",
          "merchant",
          "merchant_application",
          "owner_percentage",
          "phone_number",
          "security_pin",
          "ssn",
          "user"
        ]
      },
      "MerchantOwnerCreate": {
        "type": "object",
        "properties": {
          "user_email": {
            "type": "string",
            "format": "email"
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          }
        },
        "required": [
          "owner_percentage",
          "user_email"
        ]
      },
      "MerchantOwnerData": {
        "type": "object",
        "properties": {
          "merchant_owner": {
            "type": "string",
            "format": "uuid"
          },
          "phone_number": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        },
        "required": [
          "merchant_owner"
        ]
      },
      "MerchantOwnerSensitive": {
        "type": "object",
        "properties": {
          "ssn": {
            "type": "string",
            "maxLength": 255
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "dob",
          "security_pin",
          "ssn"
        ]
      },
      "MerchantOwnerUserCreateUpdate": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "street_address_1": {
            "type": "string"
          },
          "street_address_2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "address_verification_response": {},
          "phone_number": {
            "type": "string"
          },
          "ssn": {
            "type": "string"
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "security_pin": {
            "type": "string"
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          }
        },
        "required": [
          "city",
          "dob",
          "email",
          "first_name",
          "last_name",
          "owner_percentage",
          "security_pin",
          "ssn",
          "state",
          "street_address_1",
          "zip"
        ]
      },
      "MerchantOwnerViewset": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserViewSet"
              }
            ],
            "readOnly": true
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        },
        "required": [
          "user"
        ]
      },
      "MerchantOwnerWithContactDataViewset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "owner_percentage": {
            "type": "integer",
            "maximum": 100,
            "minimum": 10
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "address": {
            "$ref": "#/components/schemas/AddressOwner"
          },
          "phone_number": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "sensitive_set": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantOwnerSensitive"
              }
            ],
            "writeOnly": true
          }
        },
        "required": [
          "address",
          "email",
          "first_name",
          "id",
          "last_name",
          "owner_percentage",
          "phone_number",
          "sensitive_set"
        ]
      },
      "MerchantPaymentCalculator": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "offer_code_id": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "amount",
          "offer_code_id"
        ]
      },
      "MerchantPaymentCalculatorOptions": {
        "type": "object",
        "properties": {
          "min_amount": {
            "type": "string",
            "readOnly": true
          },
          "max_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "readOnly": true
          },
          "can_select_rate_sheet": {
            "type": "string",
            "readOnly": true
          },
          "offer_codes": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "can_select_rate_sheet",
          "max_amount",
          "min_amount",
          "offer_codes"
        ]
      },
      "MerchantPaymentNetworkStatus": {
        "type": "object",
        "properties": {
          "repay": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Repay"
              }
            ],
            "readOnly": true
          },
          "moov": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Moov"
              }
            ],
            "readOnly": true
          },
          "last_four": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "last_four",
          "moov",
          "repay"
        ]
      },
      "MerchantPortalData": {
        "type": "object",
        "properties": {
          "user_type": {
            "type": "string",
            "readOnly": true
          },
          "user": {
            "$ref": "#/components/schemas/MerchantPortalDataUser"
          },
          "merchant": {
            "type": "string",
            "readOnly": true
          },
          "merchant_application_uuid": {
            "type": "string",
            "readOnly": true
          },
          "is_part_of_multi_location": {
            "type": "string",
            "readOnly": true
          },
          "recent_approved_consumer_application": {
            "type": "string",
            "readOnly": true
          },
          "can_send_consumer_invitation": {
            "type": "string",
            "readOnly": true
          },
          "location": {
            "type": "string",
            "readOnly": true
          },
          "primary_location": {
            "type": "string",
            "readOnly": true
          },
          "merchant_portal_access": {
            "type": "string",
            "readOnly": true
          },
          "is_ic1_sponsored": {
            "type": "string",
            "readOnly": true
          },
          "can_update_display_name": {
            "type": "string",
            "readOnly": true
          },
          "reward_id": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "can_send_consumer_invitation",
          "can_update_display_name",
          "is_ic1_sponsored",
          "is_part_of_multi_location",
          "location",
          "merchant",
          "merchant_application_uuid",
          "merchant_portal_access",
          "primary_location",
          "recent_approved_consumer_application",
          "reward_id",
          "user",
          "user_type"
        ]
      },
      "MerchantPortalDataUser": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "last_login": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name"
        ]
      },
      "MerchantProgram": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "MerchantRateSheet": {
        "type": "object",
        "properties": {
          "rate_sheet_merchant_product_price_id": {
            "type": "integer",
            "readOnly": true
          },
          "is_selected": {
            "type": "boolean",
            "readOnly": true
          },
          "product_name": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "product_type": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "product_category": {
            "type": "string",
            "readOnly": true,
            "maxLength": 64
          },
          "is_recommended": {
            "type": "boolean",
            "readOnly": true
          },
          "short_description": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "long_description": {
            "type": "string",
            "readOnly": true,
            "maxLength": 128
          },
          "full_term": {
            "type": "string",
            "maxLength": 128
          },
          "apr": {
            "type": "string",
            "maxLength": 128
          },
          "merchant_fee": {
            "type": "string",
            "readOnly": true
          },
          "top_left_title": {
            "type": "string",
            "maxLength": 128
          },
          "top_left_content": {
            "type": "string",
            "maxLength": 128
          },
          "top_center_title": {
            "type": "string",
            "maxLength": 128
          },
          "top_center_content": {
            "type": "string",
            "maxLength": 128
          },
          "top_right_title": {
            "type": "string",
            "maxLength": 128
          },
          "top_right_content": {
            "type": "string",
            "maxLength": 128
          },
          "mid_left_title": {
            "type": "string",
            "maxLength": 128
          },
          "mid_left_content": {
            "type": "string",
            "maxLength": 128
          },
          "mid_center_title": {
            "type": "string",
            "maxLength": 128
          },
          "mid_center_content": {
            "type": "string",
            "maxLength": 128
          },
          "mid_right_title": {
            "type": "string",
            "maxLength": 128
          },
          "mid_right_content": {
            "type": "string",
            "maxLength": 128
          },
          "group_id": {
            "type": "string",
            "maxLength": 128
          },
          "customer_preferences": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_plus": {
            "type": "boolean"
          },
          "has_fallback": {
            "type": "string",
            "readOnly": true
          },
          "max_credit_limit": {
            "type": "integer"
          },
          "partial_product_availability": {
            "type": "boolean"
          }
        },
        "required": [
          "apr",
          "customer_preferences",
          "full_term",
          "group_id",
          "has_fallback",
          "is_plus",
          "is_recommended",
          "is_selected",
          "long_description",
          "max_credit_limit",
          "merchant_fee",
          "mid_center_content",
          "mid_center_title",
          "mid_left_content",
          "mid_left_title",
          "mid_right_content",
          "mid_right_title",
          "partial_product_availability",
          "product_category",
          "product_name",
          "product_type",
          "rate_sheet_merchant_product_price_id",
          "short_description",
          "top_center_content",
          "top_center_title",
          "top_left_content",
          "top_left_title",
          "top_right_content",
          "top_right_title"
        ]
      },
      "MerchantRateSheetProductPrice": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "product_term_structure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProductTermStructure"
              }
            ],
            "readOnly": true
          },
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,6}(?:\\.\\d{0,4})?$"
          },
          "product_category": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "merchant_fee",
          "product_category",
          "product_term_structure"
        ]
      },
      "MerchantRateSheetSelect": {
        "type": "object",
        "properties": {
          "rate_sheet_merchant_product_price_id": {
            "type": "integer"
          },
          "is_selected": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "rate_sheet_merchant_product_price_id"
        ]
      },
      "MerchantRateSheetSelectList": {
        "type": "object",
        "properties": {
          "rate_sheet_merchant_product_price_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantRateSheetSelect"
            }
          }
        },
        "required": [
          "rate_sheet_merchant_product_price_ids"
        ]
      },
      "MerchantReEntry": {
        "type": "object",
        "properties": {
          "merchant_application_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "merchant_application_uuid"
        ]
      },
      "MerchantRead": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "human_readable_id": {
            "type": "string"
          },
          "dba": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/MerchantStatus"
          }
        },
        "required": [
          "dba",
          "description",
          "human_readable_id",
          "name",
          "status",
          "uuid"
        ]
      },
      "MerchantRecentTransactions": {
        "type": "object",
        "properties": {
          "consumer_first_name": {
            "type": "string"
          },
          "consumer_last_name": {
            "type": "string"
          },
          "transaction_description": {
            "type": "string"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "date_time": {
            "type": "string",
            "format": "date-time"
          },
          "submitted_by_first_name": {
            "type": "string"
          },
          "submitted_by_last_name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "consumer_application_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "consumer_application_uuid",
          "consumer_first_name",
          "consumer_last_name",
          "date_time",
          "status",
          "submitted_by_first_name",
          "submitted_by_last_name",
          "transaction_amount",
          "transaction_description"
        ]
      },
      "MerchantSponsor": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "MerchantStatement": {
        "type": "object",
        "properties": {
          "applications_approved": {
            "type": "integer"
          },
          "total_credit_limit_approved": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "amount_paid_to_you": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "applications_submitted": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          },
          "statement_number": {
            "type": "string",
            "maxLength": 10
          },
          "fail_statement_details": {
            "type": "string",
            "readOnly": true
          },
          "merchant_fees_paid_to_momnt": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "merchant_info": {
            "$ref": "#/components/schemas/MerchantStatementMerchantInfo"
          },
          "branding": {
            "type": "string",
            "readOnly": true
          },
          "net_purchases": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "statement_summary": {
            "type": "string",
            "readOnly": true
          },
          "success_statement_details": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "amount_paid_to_you",
          "applications_approved",
          "branding",
          "fail_statement_details",
          "merchant_fees_paid_to_momnt",
          "merchant_info",
          "net_purchases",
          "statement_number",
          "statement_summary",
          "success_statement_details",
          "total_credit_limit_approved"
        ]
      },
      "MerchantStatementDetail": {
        "type": "object",
        "properties": {
          "merchant_info": {
            "type": "string",
            "readOnly": true
          },
          "statement_summary": {
            "type": "string",
            "readOnly": true
          },
          "success_statement_details": {
            "type": "string",
            "readOnly": true
          },
          "fail_statement_details": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "fail_statement_details",
          "merchant_info",
          "statement_summary",
          "success_statement_details"
        ]
      },
      "MerchantStatementList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "statement_date": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "statement_number": {
            "type": "string",
            "maxLength": 10
          },
          "statement_begin_date": {
            "type": "string",
            "readOnly": true
          },
          "statement_end_date": {
            "type": "string",
            "readOnly": true
          },
          "total_charges": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_refunds": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "net_purchases": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_net_merchant_receipt": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "net_merchant_fees": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_credit_limit_approved": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,2})?$"
          },
          "applications_submitted": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          },
          "applications_approved_accepted": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          }
        },
        "required": [
          "id",
          "net_merchant_fees",
          "net_purchases",
          "statement_begin_date",
          "statement_date",
          "statement_end_date",
          "statement_number",
          "total_charges",
          "total_credit_limit_approved",
          "total_net_merchant_receipt",
          "total_refunds"
        ]
      },
      "MerchantStatementMerchantInfo": {
        "type": "object",
        "properties": {
          "merchant_name": {
            "type": "string"
          },
          "merchant_address_line_1": {
            "type": "string",
            "readOnly": true
          },
          "merchant_address_line_2": {
            "type": "string",
            "readOnly": true
          },
          "merchant_city": {
            "type": "string",
            "readOnly": true
          },
          "merchant_state": {
            "type": "string",
            "readOnly": true
          },
          "merchant_zip_code": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "merchant_address_line_1",
          "merchant_address_line_2",
          "merchant_city",
          "merchant_name",
          "merchant_state",
          "merchant_zip_code"
        ]
      },
      "MerchantStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "ordinal": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          }
        },
        "required": [
          "id",
          "ordinal"
        ]
      },
      "MerchantSubProgram": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "MerchantTransactionConsumerList": {
        "type": "object",
        "description": "Used with consumer transaction list query serializer.",
        "properties": {
          "transaction_type": {
            "type": "string",
            "description": "Type of transaction. Examples:\n- Merchant Fee Credit\n- Momnt Merchant Fee Debit\n- Sponsor Fee Debit\n- Consumer Refund Debit\n- Artis Merchant Fee Debit"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Amount of the transaction"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Time date stamp of the transaction"
          }
        },
        "required": [
          "created",
          "transaction_amount",
          "transaction_type"
        ]
      },
      "MerchantTransactions": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "merchant_account": {
            "$ref": "#/components/schemas/MerchantAccount"
          },
          "merchant_invoice": {
            "$ref": "#/components/schemas/MerchantInvoice"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "excluded_begin": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "excluded_end": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "transaction_description": {
            "type": "string",
            "maxLength": 255
          },
          "is_settled": {
            "type": "boolean",
            "nullable": true
          },
          "effective_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "is_manual_transaction": {
            "type": "boolean"
          },
          "source_trace_number": {
            "type": "string",
            "maxLength": 128
          },
          "destination_trace_number": {
            "type": "string",
            "maxLength": 128
          },
          "paid_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          },
          "excluded_by_user": {
            "type": "integer",
            "nullable": true
          },
          "excluded_reason": {
            "type": "integer",
            "nullable": true
          },
          "transaction_type": {
            "type": "integer"
          },
          "created_by": {
            "type": "integer"
          },
          "transaction_status": {
            "type": "integer"
          },
          "transaction_status_reason": {
            "type": "integer",
            "nullable": true
          },
          "transaction_group": {
            "type": "integer",
            "nullable": true
          },
          "original_transaction_group": {
            "type": "integer",
            "nullable": true
          },
          "payment_provider": {
            "type": "integer"
          }
        },
        "required": [
          "created",
          "created_by",
          "id",
          "merchant_account",
          "merchant_invoice",
          "modified",
          "payment_provider",
          "transaction_amount",
          "transaction_description",
          "transaction_status",
          "transaction_type"
        ]
      },
      "MerchantUser": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "reward_id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "last_login": {
            "type": "string",
            "format": "date-time"
          },
          "is_merchant_owner": {
            "type": "string",
            "readOnly": true
          },
          "user_is_locked": {
            "type": "boolean"
          },
          "reset_login_attempts": {
            "type": "string",
            "readOnly": true
          },
          "date_joined": {
            "type": "string",
            "format": "date"
          },
          "hubspot_url": {
            "type": "string",
            "readOnly": true
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Flatten and deduplicate descendant location names across all accessible locations.",
            "readOnly": true
          }
        },
        "required": [
          "date_joined",
          "email",
          "first_name",
          "hubspot_url",
          "is_merchant_owner",
          "last_login",
          "last_name",
          "locations",
          "phone",
          "reset_login_attempts",
          "reward_id",
          "role",
          "status",
          "user_is_locked",
          "uuid"
        ]
      },
      "MerchantUserInviteToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_user_email": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "merchant_user_email"
        ]
      },
      "MerchantUserModel": {
        "type": "object",
        "properties": {
          "merchant": {
            "type": "integer"
          },
          "user": {
            "type": "integer"
          },
          "is_primary": {
            "type": "boolean"
          },
          "contact_type": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "user"
        ]
      },
      "MerchantUserPrimaryLocationUpdate": {
        "type": "object",
        "properties": {
          "merchant_uuid": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "merchant_uuid"
        ]
      },
      "MerchantUserViewSetWrite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer"
          },
          "is_primary": {
            "type": "boolean"
          },
          "contact_type": {
            "type": "integer",
            "nullable": true
          },
          "user_type": {
            "enum": [
              "Admin",
              "Salesperson",
              "Salesmanager",
              "Salesrep"
            ],
            "type": "string",
            "description": "* `Admin` - Admin\n* `Salesperson` - Salesperson\n* `Salesmanager` - Salesmanager\n* `Salesrep` - Salesrep",
            "x-spec-enum-id": "c42fccdaad47136b",
            "writeOnly": true
          }
        },
        "required": [
          "id",
          "user",
          "user_type"
        ]
      },
      "MerchantUsersAtThisLocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user_id": {
            "type": "integer"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "readOnly": true
          },
          "role": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string"
          },
          "is_merchant_owner": {
            "type": "string",
            "readOnly": true
          },
          "can_be_reinvited": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "can_be_reinvited",
          "email",
          "first_name",
          "id",
          "is_merchant_owner",
          "last_name",
          "phone_number",
          "role",
          "user_id"
        ]
      },
      "MerchantUsersAtThisLocationDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user_id": {
            "type": "integer"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "role": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string"
          },
          "is_merchant_owner": {
            "type": "string",
            "readOnly": true
          },
          "can_be_reinvited": {
            "type": "string",
            "readOnly": true
          },
          "locations": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "can_be_reinvited",
          "email",
          "first_name",
          "id",
          "is_merchant_owner",
          "last_name",
          "locations",
          "phone_number",
          "role",
          "user_id"
        ]
      },
      "MerchantUsersAtThisLocationWrite": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string"
          },
          "role": {
            "enum": [
              "merchant-admin",
              "merchant-sales-rep",
              "merchant-sales-manager"
            ],
            "type": "string",
            "description": "* `merchant-admin` - merchant-admin\n* `merchant-sales-rep` - merchant-sales-rep\n* `merchant-sales-manager` - merchant-sales-manager",
            "x-spec-enum-id": "33122be08b53e11c"
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "status": {
            "enum": [
              "Active",
              "Inactive"
            ],
            "type": "string",
            "description": "* `Active` - Active\n* `Inactive` - Inactive",
            "x-spec-enum-id": "2d9455dd451bbf4b",
            "default": "Active"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "locations",
          "phone_number",
          "role"
        ]
      },
      "MerchantUsersLocationCheck": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          }
        },
        "required": [
          "email"
        ]
      },
      "MessageResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ]
      },
      "MicroDepositAmounts": {
        "type": "object",
        "properties": {
          "micro_deposits_amounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 2
          }
        }
      },
      "MoanaEmailCheck": {
        "type": "object",
        "properties": {
          "verdict": {
            "type": "string"
          },
          "local": {
            "type": "string"
          },
          "has_valid_address_syntax": {
            "type": "boolean"
          },
          "has_mx_or_a_record": {
            "type": "boolean"
          },
          "is_suspected_disposable_address": {
            "type": "boolean"
          },
          "has_known_bounces": {
            "type": "boolean"
          },
          "suggestion": {
            "type": "string"
          }
        },
        "required": [
          "has_known_bounces",
          "has_mx_or_a_record",
          "has_valid_address_syntax",
          "is_suspected_disposable_address",
          "local",
          "verdict"
        ]
      },
      "MomntConsumerCashTransactionDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          },
          "transaction_type": {
            "type": "string"
          },
          "created": {
            "type": "string",
            "format": "date"
          },
          "effective_date": {
            "type": "string",
            "format": "date"
          },
          "created_by": {
            "type": "string"
          },
          "modified": {
            "type": "string",
            "format": "date"
          },
          "transaction_status": {
            "type": "string"
          },
          "transaction_status_reason": {
            "type": "string",
            "default": ""
          },
          "source_trace_number": {
            "type": "string",
            "maxLength": 128
          },
          "destination_trace_number": {
            "type": "string",
            "maxLength": 128
          },
          "payment_method_id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "payment_type": {
            "enum": [
              "ach-debit-collect",
              "ach-debit-fund",
              "ach-credit-standard",
              "ach-credit-same-day",
              "card-payment",
              "moov-wallet",
              "",
              null
            ],
            "type": "string",
            "description": "* `ach-debit-collect` - ach-debit-collect\n* `ach-debit-fund` - ach-debit-fund\n* `ach-credit-standard` - ach-credit-standard\n* `ach-credit-same-day` - ach-credit-same-day\n* `card-payment` - card-payment\n* `moov-wallet` - moov-wallet",
            "x-spec-enum-id": "f730c892815b5c8b",
            "nullable": true
          },
          "lender": {
            "type": "string",
            "default": ""
          },
          "merchant": {
            "type": "string",
            "default": ""
          },
          "payment_provider": {
            "type": "string"
          },
          "excluded_by_user": {
            "type": "string"
          },
          "excluded_reason": {
            "type": "string"
          }
        },
        "required": [
          "created",
          "created_by",
          "effective_date",
          "id",
          "modified",
          "payment_provider",
          "transaction_status",
          "transaction_type"
        ]
      },
      "MomntEvent": {
        "description": "Base model for all Momnt platform events sent to AWS EventBridge.\n\nThis class defines the common structure and metadata required for event publication,\nand serves as the foundation for more specific event types. It enforces versioning,\nevent bus targeting, and standard fields like `initiated_by` and `env` to ensure\nconsistency across event payloads.\n\nMethods:\nvalidate_version(v: str): Ensures the `version` string adheres to semantic versioning (X.Y.Z).\nto_json(): Serializes the event to JSON.\nhas_unset_initiated_by(): Checks if the initiated_by field has never been set.\nhas_unset_env(): Checks if the env field has never been set.\nhas_unset_source(): Checks if the source field has never been set.",
        "properties": {
          "version": {
            "default": "1.0.0",
            "description": "The version of the event schema, following semantic versioning (X.Y.Z).",
            "title": "Version",
            "type": "string"
          },
          "event_bus_name": {
            "$ref": "#/components/schemas/EventBusName",
            "default": "application",
            "description": "Name of the event bus to publish to"
          },
          "detail_type": {
            "$ref": "#/components/schemas/DetailType",
            "description": "Detail type for the event"
          },
          "source": {
            "default": "UNKNOWN_SOURCE",
            "description": "Source of the event. This is used to categorize the event in EventBridge.",
            "title": "Source",
            "type": "string"
          },
          "initiated_by": {
            "default": "UNKNOWN_INITIATED_BY",
            "description": "Who initiated the event.  Examples: ('user', 'system', 'moana')",
            "maxLength": 200,
            "minLength": 1,
            "title": "Initiated By",
            "type": "string"
          },
          "env": {
            "default": "UNKNOWN_ENV",
            "description": "Environment where the event is emitted",
            "title": "Env",
            "type": "string"
          },
          "correlation_id": {
            "description": "Correlation ID for the event",
            "title": "Correlation Id",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp of when the event was emitted",
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          }
        },
        "required": [
          "detail_type"
        ],
        "title": "MomntEvent",
        "type": "object"
      },
      "Moov": {
        "type": "object",
        "properties": {
          "can_transact": {
            "type": "boolean"
          },
          "status": {
            "enum": [
              "connected",
              "disconnected"
            ],
            "type": "string",
            "description": "* `connected` - connected\n* `disconnected` - disconnected",
            "x-spec-enum-id": "fee37c729ffeff01"
          },
          "number_of_active_loans": {
            "type": "integer"
          },
          "micro_deposit_verification_attempts": {
            "type": "integer"
          },
          "eligible_for_next_verification_attempt": {
            "type": "boolean"
          }
        },
        "required": [
          "can_transact",
          "eligible_for_next_verification_attempt",
          "micro_deposit_verification_attempts",
          "number_of_active_loans",
          "status"
        ]
      },
      "MultiLocationAllUsersModel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user_id": {
            "type": "integer"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "has_access": {
            "type": "boolean"
          },
          "role": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "readOnly": true
          },
          "status": {
            "type": "string"
          },
          "accessible_locations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "description": "In the queryset, each merchant user's merchant location hierarchy includes all its child locations.\nWe group these child locations by user and remove duplicates.\nFor example, a single user might have three Merchant User Merchant Location Hierarchies,\n\"Region Access\", its child location \"State 1 Access\", and \"Region Access 2\":\n\nmerchant_user = {\n\"Region Access 1\": {\n\"Region Access 1\", \"State 1 Access\", \"State 2 Access\"\n},\n\"State 1 Access\": {\n\"State 1 Access\"\n},\n\"Region Access 2\": {\n\"Region Access 2\", \"State 3 Access\",\n},\n}\n\nFinal output should be:\n\nmerchant_user = {\nlocations: [\"Region Access 1\", \"State 1 Access\", \"State 2 Access\", \"Region Access 2\", \"State 3 Access\"]\n\n}",
            "readOnly": true
          },
          "can_be_reinvited": {
            "type": "string",
            "readOnly": true
          },
          "is_merchant_owner": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "accessible_locations",
          "can_be_reinvited",
          "email",
          "first_name",
          "has_access",
          "id",
          "is_merchant_owner",
          "last_name",
          "phone_number",
          "role",
          "user_id"
        ]
      },
      "NameDescriptionResponse": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "description",
          "name"
        ]
      },
      "NameID": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "Nested": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "is_tiered": {
            "type": "boolean"
          },
          "min": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "NiceInboundLookup": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string"
          },
          "agent_email": {
            "type": "string",
            "format": "email"
          }
        },
        "required": [
          "agent_email",
          "phone_number"
        ]
      },
      "OAuthEnterprise": {
        "type": "object",
        "properties": {
          "id_token": {
            "type": "string",
            "writeOnly": true
          },
          "access_token": {
            "type": "string",
            "readOnly": true
          },
          "is_two_factor_setup": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "required": [
          "access_token",
          "id_token",
          "is_two_factor_setup"
        ]
      },
      "Occupation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "title": "Occupation Name",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "OccupationCategory": {
        "type": "object",
        "description": "Serializer for the OccupationCategory model.",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "occupations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Occupation"
            },
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name",
          "occupations"
        ]
      },
      "OfferCodeRead": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "rate_sheet_merchant_product_prices": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "name",
          "rate_sheet_merchant_product_prices"
        ]
      },
      "OfferCodeWrite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        },
        "required": [
          "id",
          "name",
          "rate_sheet_merchant_product_prices"
        ]
      },
      "OfferCodes": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "products": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "is_active",
          "name",
          "products"
        ]
      },
      "OfferSelect": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid",
            "writeOnly": true
          }
        },
        "required": [
          "uuid"
        ]
      },
      "PaginatedAllTransactionListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AllTransactionList"
            }
          }
        }
      },
      "PaginatedApplicationStatusHistoryList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationStatusHistory"
            }
          }
        }
      },
      "PaginatedApprovedMerchantListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApprovedMerchantList"
            }
          }
        }
      },
      "PaginatedAuditLogList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuditLog"
            }
          }
        }
      },
      "PaginatedCertificateOfCompletionEnterprisePortalList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CertificateOfCompletionEnterprisePortal"
            }
          }
        }
      },
      "PaginatedCertificateOfCompletionMerchantPortalList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CertificateOfCompletionMerchantPortal"
            }
          }
        }
      },
      "PaginatedConsumerAccountCertificateOfCompletionEPList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerAccountCertificateOfCompletionEP"
            }
          }
        }
      },
      "PaginatedConsumerAccountListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerAccountList"
            }
          }
        }
      },
      "PaginatedConsumerAccountLookupList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerAccountLookup"
            }
          }
        }
      },
      "PaginatedConsumerApplicationList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerApplication"
            }
          }
        }
      },
      "PaginatedConsumerInvitationMerchantPortalList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerInvitationMerchantPortal"
            }
          }
        }
      },
      "PaginatedConsumerNoteEnteredByUserList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerNoteEnteredByUser"
            }
          }
        }
      },
      "PaginatedConsumerPaymentRequestListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerPaymentRequestList"
            }
          }
        }
      },
      "PaginatedConsumerStatementList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerStatement"
            }
          }
        }
      },
      "PaginatedConsumerStatementListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerStatementList"
            }
          }
        }
      },
      "PaginatedConsumerTransactionGroupList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerTransactionGroup"
            }
          }
        }
      },
      "PaginatedConsumerTransactionList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerTransaction"
            }
          }
        }
      },
      "PaginatedConsumerTransactionWithMerchantList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerTransactionWithMerchant"
            }
          }
        }
      },
      "PaginatedConsumerTransactionWithMomntList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerTransactionWithMomnt"
            }
          }
        }
      },
      "PaginatedEPConsumerNoteList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EPConsumerNote"
            }
          }
        }
      },
      "PaginatedEnterpriseUserList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnterpriseUser"
            }
          }
        }
      },
      "PaginatedLoginLogList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoginLog"
            }
          }
        }
      },
      "PaginatedMerchantApplicationListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantApplicationList"
            }
          }
        }
      },
      "PaginatedMerchantAvailableTransactionList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantAvailableTransaction"
            }
          }
        }
      },
      "PaginatedMerchantConsumerLoanApplicationsList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantConsumerLoanApplications"
            }
          }
        }
      },
      "PaginatedMerchantConsumerTransactionList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantConsumerTransaction"
            }
          }
        }
      },
      "PaginatedMerchantLoanApplicationListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantLoanApplicationList"
            }
          }
        }
      },
      "PaginatedMerchantLocationHierarchyList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantLocationHierarchy"
            }
          }
        }
      },
      "PaginatedMerchantOpportunitiesList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantOpportunities"
            }
          }
        }
      },
      "PaginatedMerchantRecentTransactionsList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantRecentTransactions"
            }
          }
        }
      },
      "PaginatedMerchantStatementList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantStatement"
            }
          }
        }
      },
      "PaginatedMerchantUserList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantUser"
            }
          }
        }
      },
      "PaginatedMerchantUsersAtThisLocationList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantUsersAtThisLocation"
            }
          }
        }
      },
      "PaginatedMultiLocationAllUsersModelList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultiLocationAllUsersModel"
            }
          }
        }
      },
      "PaginatedPartnerAllTransactionListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerAllTransactionList"
            }
          }
        }
      },
      "PaginatedPartnerMerchantAvailableTransactionsList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantAvailableTransactions"
            }
          }
        }
      },
      "PaginatedPhoneNumberList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          }
        }
      },
      "PaginatedPortfolioSalesJobListList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PortfolioSalesJobList"
            }
          }
        }
      },
      "PaginatedRecentApplicationMerchantList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecentApplicationMerchant"
            }
          }
        }
      },
      "PaginatedUserRoleList": {
        "type": "object",
        "required": [
          "count",
          "results"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "example": 123
          },
          "next": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=4"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "format": "uri",
            "example": "http://api.example.org/accounts/?page=2"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserRole"
            }
          }
        }
      },
      "PartnerAllTransactionList": {
        "type": "object",
        "properties": {
          "consumer_first_name": {
            "type": "string"
          },
          "consumer_last_name": {
            "type": "string"
          },
          "request_date": {
            "type": "string",
            "format": "date-time"
          },
          "payment_request_status": {
            "type": "string",
            "readOnly": true
          },
          "transaction_description": {
            "type": "string"
          },
          "payment_request_id": {
            "type": "string"
          },
          "consumer_application_human_readable_id": {
            "type": "string"
          },
          "requested_by": {
            "type": "string",
            "readOnly": true
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "product_name": {
            "type": "string"
          },
          "consumer_application_id": {
            "type": "string",
            "readOnly": true
          },
          "is_settled": {
            "type": "boolean",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "readOnly": true
          },
          "payment_request_uuid": {
            "type": "string",
            "readOnly": true
          },
          "merchant_fee": {
            "type": "string",
            "readOnly": true
          },
          "merchant_fee_transaction_amount": {
            "type": "string",
            "readOnly": true
          },
          "net_to_merchant_amount": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "consumer_application_human_readable_id",
          "consumer_application_id",
          "consumer_charge_amount",
          "consumer_first_name",
          "consumer_last_name",
          "is_settled",
          "merchant_fee",
          "merchant_fee_transaction_amount",
          "net_to_merchant_amount",
          "payment_identifier",
          "payment_request_id",
          "payment_request_status",
          "payment_request_uuid",
          "product_name",
          "request_date",
          "requested_by",
          "transaction_description"
        ]
      },
      "PartnerConsumerAccountCancel": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The ID of the user in the partner system making the application soft pull request.",
            "maxLength": 255
          },
          "external_application_id": {
            "type": "string",
            "description": "The unique identifier in the partner system for this loan application.",
            "maxLength": 255
          }
        },
        "required": [
          "external_application_id",
          "request_user_id"
        ]
      },
      "PartnerConsumerOfferUpdateResponse": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "consumer_invitation_link": {
            "type": "string",
            "format": "uri",
            "description": "Momnt's Consumer Invitation ID."
          }
        },
        "required": [
          "consumer_invitation_link"
        ]
      },
      "PartnerConsumerPaymentRequestApproveRequest": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The ID of the user who approved the request.",
            "maxLength": 255
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "description": "When the consumer approved the request on the sponsor system (ISO 8601 UTC).\nExample: 2026-03-13T01:16:09.601261Z"
          }
        },
        "required": [
          "consented_on",
          "request_user_id"
        ]
      },
      "PartnerConsumerPaymentRequestApproveResponse": {
        "properties": {
          "detail": {
            "title": "Detail",
            "type": "string"
          },
          "payment_request_status": {
            "$ref": "#/components/schemas/PaymentRequestStatusEnum"
          }
        },
        "required": [
          "detail",
          "payment_request_status"
        ],
        "title": "PartnerConsumerPaymentRequestApproveResponse",
        "type": "object"
      },
      "PartnerConsumerPaymentRequestCreate": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The ID in the partner system making the request.",
            "maxLength": 255
          },
          "consumer_application_uuid": {
            "type": "string",
            "description": "The identifier in the partner system for this loan application.",
            "maxLength": 128
          },
          "transaction_description": {
            "type": "integer",
            "description": "The ID of the transaction type being sent:\n- **109** - Consumer Deposit/Initial Charge,\n- **111** - Consumer Project Charge,\n- **113** - Consumer Final Charge"
          },
          "transaction_callback_url": {
            "type": "string",
            "format": "uri"
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Total amount being charged to the consumer"
          },
          "net_to_merchant_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer charge that should be credited to merchant"
          },
          "net_to_sponsor_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer charge that should be debited from the merchant deposit and credited to the sponsor. (i.e. processing fees, materials, etc.)."
          },
          "net_artis_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount due to Momnt for the transaction - this should equal consumer charge amount * merchant fee % for the loan product. This should be pulled directly from the merchant's rate sheet every time - the request will fail if the amount is incorrect."
          },
          "sponsor_account_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "Sponsor/Partner payment account UUID of which sponsor payment account should receive the funds in the net_to_sponsor field of the request"
          },
          "external_org_id": {
            "type": "string",
            "description": "The external organization ID of the consumer.",
            "maxLength": 255
          }
        },
        "required": [
          "consumer_application_uuid",
          "consumer_charge_amount",
          "net_artis_fee",
          "net_to_merchant_amount",
          "net_to_sponsor_amount",
          "request_user_id",
          "transaction_callback_url",
          "transaction_description"
        ]
      },
      "PartnerConsumerPaymentRequestList": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "payment_request_status": {
            "type": "string",
            "readOnly": true,
            "description": "Status for the Payment Request"
          },
          "payment_request_id": {
            "type": "string",
            "description": "UUID for the payment request generated at Momnt and returned in the response to the Payment Request POST."
          },
          "request_date": {
            "type": "string",
            "format": "date-time",
            "description": "Time date stamp of payment request"
          },
          "consumer_application_human_readable_id": {
            "type": "string",
            "description": "10-digit application / loan number for the consumer account"
          },
          "consumer_first_name": {
            "type": "string",
            "description": "First Name of consumer"
          },
          "consumer_last_name": {
            "type": "string",
            "description": "Last Name of consumer"
          },
          "transaction_description": {
            "type": "integer",
            "description": "The ID of the transaction type being sent:\n- **109** - Consumer Deposit/Initial Charge\n- **111** - Consumer Project Charge\n- **113** - Consumer Final Charge"
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Total amount being charged to the consumer"
          },
          "net_to_merchant": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer charge that should be credited to merchant"
          },
          "net_to_sponsor": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer charge that should be debited from the merchant deposit and credited to the sponsor. (i.e. processing fees, materials, etc.)."
          },
          "net_to_artis": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount due to Momnt for the transaction - this should equal consumer charge amount * merchant fee % for the loan product. This should be pulled directly from the merchant's rate sheet every time - the request will fail if the amount is incorrect."
          },
          "requested_by": {
            "type": "string",
            "description": "Sponsor/Partner UUID for merchant user who initiated the payment request to the consumer"
          },
          "sponsor_account_uuid": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "required": [
          "consumer_application_human_readable_id",
          "consumer_charge_amount",
          "consumer_first_name",
          "consumer_last_name",
          "net_to_artis",
          "net_to_merchant",
          "net_to_sponsor",
          "payment_request_id",
          "payment_request_status",
          "request_date",
          "requested_by",
          "transaction_description"
        ]
      },
      "PartnerConsumerPaymentResponseSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "detail": {
            "$ref": "#/components/schemas/DetailSchema"
          }
        },
        "required": [
          "detail"
        ]
      },
      "PartnerConsumerPreOnboarding": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The ID in the partner system making the request.",
            "maxLength": 255
          },
          "application_id": {
            "type": "string",
            "description": "The identifier in the partner system for this loan application.",
            "maxLength": 255
          },
          "customer_email": {
            "type": "string",
            "format": "email",
            "description": "You must send email OR phone."
          },
          "customer_phone": {
            "type": "string",
            "description": "You must send email OR phone."
          },
          "sponsor_callback_url": {
            "type": "string",
            "format": "uri",
            "description": "When consumer loan is approved or cancelled, Momnt will POST information to this fully qualified URL. This URL will be called A SECOND TIME when the loan documents are accepted by the consumer (borrower)."
          },
          "consumer_first_name": {
            "type": "string",
            "description": "The first name of the consumer.",
            "maxLength": 128
          },
          "consumer_middle_name": {
            "type": "string",
            "description": "The middle name of the consumer.",
            "maxLength": 128
          },
          "consumer_last_name": {
            "type": "string",
            "description": "The last name of the consumer.",
            "maxLength": 128
          },
          "consumer_address_1": {
            "type": "string",
            "description": "The first line of the consumer's address.",
            "maxLength": 255
          },
          "consumer_address_2": {
            "type": "string",
            "description": "The second line of the consumer's address.",
            "maxLength": 255
          },
          "consumer_city": {
            "type": "string",
            "description": "The city of the consumer's address.",
            "maxLength": 255
          },
          "consumer_state": {
            "type": "string",
            "description": "The state of the consumer's address.",
            "maxLength": 2
          },
          "consumer_zip_code": {
            "type": "string",
            "description": "The zip code of the consumer's address.",
            "maxLength": 10
          },
          "consumer_requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "nullable": true,
            "description": "The requested amount of the consumer."
          },
          "offer_code": {
            "type": "string",
            "description": "The offer code of the consumer.",
            "maxLength": 255
          },
          "external_org_id": {
            "type": "string",
            "description": "The external organization ID of the consumer.",
            "maxLength": 255
          }
        },
        "required": [
          "application_id",
          "request_user_id",
          "sponsor_callback_url"
        ]
      },
      "PartnerConsumerPreOnboardingResponse": {
        "type": "object",
        "properties": {
          "artis_consumer_invitation_id": {
            "type": "string",
            "format": "uuid"
          },
          "contractor_id": {
            "type": "string",
            "maxLength": 255
          },
          "request_user_invitation_id": {
            "type": "string",
            "maxLength": 255
          },
          "offer_code": {
            "type": "string",
            "maxLength": 255
          },
          "consumer_invitation_link": {
            "type": "string",
            "format": "uri"
          },
          "consumer_requested_amount": {
            "type": "integer"
          }
        },
        "required": [
          "artis_consumer_invitation_id",
          "contractor_id",
          "request_user_invitation_id"
        ]
      },
      "PartnerConsumerSoftPull": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "ID of the user in the partner system making the application soft pull request.",
            "maxLength": 255
          },
          "external_application_id": {
            "type": "string",
            "description": "The identifier in the partner system for this loan application.",
            "maxLength": 255
          },
          "external_org_id": {
            "type": "string",
            "maxLength": 255
          },
          "consumer_email": {
            "type": "string",
            "format": "email",
            "description": "Consumer's email address. Max length 255."
          },
          "consumer_phone": {
            "type": "string",
            "description": "Consumer's phone number. Format as: +15552223333"
          },
          "consumer_first_name": {
            "type": "string",
            "description": "Consumer's First Name.",
            "maxLength": 128
          },
          "consumer_middle_name": {
            "type": "string",
            "description": "Consumer's Middle Name.",
            "maxLength": 128
          },
          "consumer_last_name": {
            "type": "string",
            "description": "Consumer's Last Name.",
            "maxLength": 128
          },
          "consumer_address_1": {
            "type": "string",
            "description": "Consumer's Street Address.",
            "maxLength": 255
          },
          "consumer_address_2": {
            "type": "string",
            "description": "Consumer's Street Address line 2 (if applicable).",
            "maxLength": 255
          },
          "consumer_city": {
            "type": "string",
            "description": "Consumer's City.",
            "maxLength": 255
          },
          "consumer_state": {
            "type": "string",
            "description": "Consumer's State. Use 2 Letter State Code.",
            "maxLength": 2,
            "minLength": 2
          },
          "consumer_zip_code": {
            "type": "string",
            "description": "Consumer's 5- or 9-digit Zip Code.",
            "maxLength": 10,
            "minLength": 5
          },
          "consumer_ssn": {
            "type": "string",
            "description": "Consumer's Social Security Number (ex. 123456789).",
            "maxLength": 9,
            "minLength": 9
          },
          "consumer_dob": {
            "type": "string",
            "format": "date",
            "description": "Consumer's Date of Birth (ex. YYYY-MM-DD)."
          },
          "consumer_requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Loan Amount the consumer is requesting."
          },
          "annual_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Provide the annual income. If income is captured in separate fields (e.g., individual income and additional income), ensure additional_household_income field is included."
          },
          "additional_household_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Sent if additional income is captured separately in the consumer application process."
          },
          "housing_status": {
            "enum": [
              "Rent",
              "Own",
              "Other"
            ],
            "type": "string",
            "x-spec-enum-id": "520a566bfc4ee4ee",
            "description": "Acceptable values: \"Rent\", \"Own\", \"Other\".\n\n* `Rent` - Rent\n* `Own` - Own\n* `Other` - Other"
          },
          "monthly_housing_payment": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Monthly housing payment amount."
          },
          "mobile_home": {
            "type": "boolean",
            "description": "Indicates if the consumer lives in a mobile home."
          },
          "years_at_current_residence": {
            "type": "integer",
            "description": "Number of years at the current residence."
          },
          "installation_same_as_home": {
            "type": "boolean",
            "description": "Indicates if the installation address is the same as home address."
          },
          "offer_code": {
            "type": "string",
            "description": "Provide offer code that should be applied to the consumer's application."
          },
          "presented_on": {
            "type": "string",
            "format": "date-time",
            "description": "Provide date and time the consumer was presented with disclosures if you can collect. Use ISO 8601 format (ex. YYYY-MM-DDThh:mm:ssZ)."
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "description": "Provide date and time when the consumer submitted the application. Use ISO 8601 format (ex. YYYY-MM-DDThh:mm:ssZ)."
          },
          "sponsor_callback_url": {
            "type": "string",
            "format": "uri",
            "description": "When a consumer loan status is updated, Momnt will POST information to this fully qualified URL."
          }
        },
        "required": [
          "annual_income",
          "consented_on",
          "consumer_address_1",
          "consumer_city",
          "consumer_dob",
          "consumer_email",
          "consumer_first_name",
          "consumer_last_name",
          "consumer_phone",
          "consumer_requested_amount",
          "consumer_ssn",
          "consumer_state",
          "consumer_zip_code",
          "external_application_id",
          "request_user_id"
        ]
      },
      "PartnerConsumerSoftPullResponse": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "consumer_invitation_uuid": {
            "type": "string",
            "format": "uuid",
            "description": "Momnt's Consumer Invitation ID."
          },
          "consumer_application_id": {
            "type": "string",
            "description": "Momnt's Human-Friendly Application ID."
          },
          "soft_pull_credit_limit": {
            "type": "string",
            "readOnly": true,
            "description": "Credit Limit the consumer was approved for."
          },
          "consumer_requested_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Requested Amount sent in request."
          },
          "decision": {
            "type": "string",
            "description": "Values: Offers, No Offers"
          },
          "decision_detail": {
            "type": "string",
            "default": "",
            "description": "Values: blank, Approved for Less, Frozen Credit"
          },
          "offers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SoftPullOffer"
            }
          }
        },
        "required": [
          "consumer_application_id",
          "consumer_invitation_uuid",
          "consumer_requested_amount",
          "decision",
          "offers",
          "soft_pull_credit_limit"
        ]
      },
      "PartnerConsumerTransaction": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "consumer_application_human_readable_id": {
            "type": "string",
            "description": "10-digit application / loan number for the consumer account"
          },
          "associated_payment_request_id": {
            "type": "string",
            "format": "uuid",
            "description": "UUID for the associated payment request generated at Momnt and returned in the response to the Payment Request POST."
          },
          "consumer_first_name": {
            "type": "string"
          },
          "consumer_last_name": {
            "type": "string"
          },
          "transaction_description": {
            "type": "integer",
            "description": "The ID of the transaction type being sent:\n- **109** - Consumer Deposit/Initial Charge\n- **111** - Consumer Project Charge\n- **113** - Consumer Final Charge\n- **115** - Consumer Refund Credit"
          },
          "consumer_charge_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Total amount that was charged to the consumer's account"
          },
          "merchant_transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantTransactionConsumerList"
            },
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the transaction. A successful status means the transaction has successfully reached\nour payment processor.\nPossible status:\n- Successful\n- Failed\n- Pending\n- Submitted\n- Reversed\n- Transferred\n- Excluded"
          },
          "request_datetime": {
            "type": "string",
            "format": "date-time",
            "description": "Time date stamp of payment request"
          },
          "status_datetime": {
            "type": "string",
            "format": "date-time",
            "description": "Time date stamp of most recent status"
          },
          "submitted_by": {
            "type": "string",
            "description": "Sponsor/Partner UUID for the merchant user who initiated the payment request to the consumer"
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          }
        },
        "required": [
          "associated_payment_request_id",
          "consumer_application_human_readable_id",
          "consumer_charge_amount",
          "consumer_first_name",
          "consumer_last_name",
          "merchant_transactions",
          "request_datetime",
          "status",
          "status_datetime",
          "submitted_by",
          "transaction_description"
        ]
      },
      "PartnerMerchantAvailableTransactions": {
        "type": "object",
        "properties": {
          "consumer_application": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "requested_loan_amount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "user": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UserReadOnlyAddress"
              }
            ],
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "format": "date-time"
          },
          "human_readable_id": {
            "type": "string"
          },
          "consumer_account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ConsumerAccountBalanceWithTransaction"
              }
            ],
            "readOnly": true
          },
          "phone_number": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "external_application_id": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "consumer_account",
          "consumer_application",
          "external_application_id",
          "human_readable_id",
          "phone_number",
          "product_name",
          "purchase_window_end_date",
          "requested_loan_amount",
          "status",
          "user"
        ]
      },
      "PartnerMerchantDetailRead": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "status": {
            "type": "string"
          },
          "application_status": {
            "type": "string",
            "readOnly": true
          },
          "contractor_id": {
            "type": "string"
          },
          "merchantuser_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantUserRead"
            }
          },
          "merchantowner_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantOwnerRead"
            }
          },
          "merchant_account_exists": {
            "type": "boolean",
            "readOnly": true
          },
          "bank_account_status": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "application_status",
          "bank_account_status",
          "contractor_id",
          "merchant_account_exists",
          "merchantowner_set",
          "merchantuser_set",
          "name",
          "status"
        ]
      },
      "PartnerMerchantListRead": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "status": {
            "type": "string"
          },
          "application_status": {
            "type": "string",
            "readOnly": true
          },
          "contractor_id": {
            "type": "string"
          },
          "merchant_account_exists": {
            "type": "boolean",
            "readOnly": true
          },
          "bank_account_status": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "application_status",
          "bank_account_status",
          "contractor_id",
          "merchant_account_exists",
          "name",
          "status"
        ]
      },
      "PartnerMerchantLoansAccount": {
        "type": "object",
        "properties": {
          "is_valid_for_transaction": {
            "type": "boolean",
            "readOnly": true
          },
          "transaction_status_code": {
            "type": "integer",
            "readOnly": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "current_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "available_spend": {
            "type": "string",
            "readOnly": true
          },
          "max_available_transaction": {
            "type": "string",
            "readOnly": true
          },
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "no_transaction_message": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "readOnly": true
          },
          "apr": {
            "type": "string",
            "readOnly": true
          },
          "term": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "apr",
          "available_spend",
          "credit_limit",
          "current_balance",
          "is_valid_for_transaction",
          "max_available_transaction",
          "no_transaction_message",
          "product_name",
          "purchase_window_end_date",
          "term",
          "transaction_status_code"
        ]
      },
      "PartnerMerchantLoansRead": {
        "type": "object",
        "properties": {
          "consumer_application_uuid": {
            "type": "string",
            "readOnly": true
          },
          "consumer_application_human_readable_id": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email",
            "readOnly": true
          },
          "requested_loan_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          },
          "status": {
            "type": "string"
          },
          "shown_offers": {
            "type": "boolean",
            "readOnly": true
          },
          "created": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/PartnerMerchantLoansUser"
          },
          "consumer_account": {
            "$ref": "#/components/schemas/PartnerMerchantLoansAccount"
          },
          "decision_detail": {
            "type": "string"
          }
        },
        "required": [
          "consumer_application_human_readable_id",
          "consumer_application_uuid",
          "created",
          "decision_detail",
          "email",
          "requested_loan_amount",
          "shown_offers",
          "status",
          "user"
        ]
      },
      "PartnerMerchantLoansUser": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressUser"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "address",
          "first_name",
          "last_name",
          "phone_number"
        ]
      },
      "PartnerMerchantMicroDepositInitiate": {
        "type": "object",
        "properties": {
          "external_org_id": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "PartnerMerchantOwnerRead": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "phone_number"
        ]
      },
      "PartnerMerchantPaymentDetail": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "address_zip": {
            "type": "string",
            "nullable": true
          },
          "name_on_check": {
            "type": "string",
            "description": "Name on the check (likely a business name)"
          },
          "ach_account_number": {
            "type": "string",
            "nullable": true,
            "description": "Bank account number for the merchant’s bank account. Must be 17 digits or less.",
            "maxLength": 17,
            "minLength": 5
          },
          "ach_routing_number": {
            "type": "string",
            "nullable": true,
            "description": "9 digit routing number for the merchant’s bank account",
            "maxLength": 9,
            "minLength": 9
          },
          "email": {
            "type": "string",
            "format": "email",
            "nullable": true,
            "description": "Email address for communications regarding the account"
          },
          "sec_code": {
            "enum": [
              "CCD"
            ],
            "type": "string",
            "description": "* `CCD` - CCD",
            "x-spec-enum-id": "60f59961b64b43af",
            "default": "CCD"
          },
          "bank_account_type": {
            "type": "string",
            "description": "Either “Checking” or “Savings”"
          },
          "holder_type": {
            "type": "string",
            "description": "Either “Individual” or “Business”"
          },
          "micro_deposits_amounts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 2
          },
          "request_user_id": {
            "type": "string",
            "description": "External Partner user ID of an existing user set up at Momnt who is initiating\nthe change to the payment account. This user must be an active merchant admin user\nfor the merchant the update is being requested for.",
            "maxLength": 255
          },
          "external_org_id": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "ach_account_number",
          "ach_routing_number",
          "request_user_id"
        ]
      },
      "PartnerMerchantPreOnboardingResponse": {
        "type": "object",
        "properties": {
          "artis_merchant_user_id": {
            "type": "string",
            "format": "uuid"
          },
          "artis_merchant_id": {
            "type": "string",
            "format": "uuid"
          },
          "invitation_link": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "artis_merchant_id",
          "artis_merchant_user_id"
        ]
      },
      "PartnerMerchantPreOnboardingSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "user_business_email": {
            "type": "string",
            "format": "email"
          },
          "mobile_phone": {
            "type": "string",
            "description": "Format as: +15552223333. This will be used to verify merchant’s email via one-time password (OTP) text message."
          },
          "user_id": {
            "type": "string",
            "description": "Your system user ID associated to this specific merchant user.",
            "maxLength": 255
          },
          "business_name": {
            "type": "string",
            "maxLength": 255
          },
          "business_address_1": {
            "type": "string",
            "description": "This should be a physical address and not a P.O. Box.",
            "maxLength": 255
          },
          "business_address_2": {
            "type": "string",
            "maxLength": 255
          },
          "business_phone": {
            "type": "string",
            "description": "Format as: +15552223333"
          },
          "state": {
            "type": "string",
            "description": "Format as two letters (ex. NY, CA, etc.)",
            "maxLength": 2
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "zip_code": {
            "type": "string",
            "description": "Format as five digits (ex. 10456). Verified zip codes with four-digit extension can be sent (ex. 10456-1234)",
            "maxLength": 10
          },
          "contractor_id": {
            "type": "string",
            "description": "External Sponsor assigned identifier for this specific merchant (contractor).",
            "maxLength": 255
          },
          "sponsor_callback_url": {
            "type": "string",
            "format": "uri",
            "description": "Callback URL is static and provided by the sponsor."
          },
          "sponsor_redirect_url": {
            "type": "string",
            "format": "uri",
            "description": "URL where a merchant should be redirected after application process is complete (typically your portal login)."
          }
        },
        "required": [
          "business_address_1",
          "business_name",
          "business_phone",
          "city",
          "contractor_id",
          "first_name",
          "last_name",
          "mobile_phone",
          "sponsor_callback_url",
          "sponsor_redirect_url",
          "state",
          "user_business_email",
          "user_id",
          "zip_code"
        ]
      },
      "PartnerMerchantRateSheetList": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "merchant_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,6}(?:\\.\\d{0,4})?$",
            "description": "The transaction fee charged to the merchant for each loan product. Should be multiplied by 100 to present in percent form."
          },
          "merchant_selected": {
            "type": "boolean"
          },
          "is_active": {
            "type": "boolean",
            "description": "Boolean field indicating whether the merchant has turned on the specified loan product or not. If true, the merchant has turned on the loan product."
          },
          "is_recommended": {
            "type": "boolean"
          },
          "is_plus": {
            "type": "boolean"
          },
          "top_left_title": {
            "type": "string",
            "description": "Header for the details in top_left_content.\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Deferred Interest:** 12 months",
            "maxLength": 128
          },
          "top_left_content": {
            "type": "string",
            "description": "Product specific detail for the header in top_left_title\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Deferred Interest:** 12 months",
            "maxLength": 128
          },
          "top_center_title": {
            "type": "string",
            "description": "Header for the details in top_center_content\nEx: These fields would not be displayed in the example above. For an FR-0299-05 product, these 2 fields be\ndisplayed like so:\n**Low APR:** 2.99%",
            "maxLength": 128
          },
          "top_center_content": {
            "type": "string",
            "description": "Product specific detail for the header in top_center_title\nEx: These fields would not be displayed in the example above. For an FR-0299-05 product, these 2 fields be\ndisplayed like so:\n**Low APR:** 2.99%",
            "maxLength": 128
          },
          "top_right_title": {
            "type": "string",
            "description": "Header for the details in top_right_content\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**No Payments Due:** 12 months",
            "maxLength": 128
          },
          "top_right_content": {
            "type": "string",
            "description": "Product specific detail for the header in top_right_title\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**No Payments Due:** 12 months",
            "maxLength": 128
          },
          "mid_left_title": {
            "type": "string",
            "description": "Header for the details in mid_left_content\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Amortization Period:** 48 months",
            "maxLength": 128
          },
          "mid_left_content": {
            "type": "string",
            "description": "Product specific detail for the header in mid_left_title\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Amortization Period:** 48 months",
            "maxLength": 128
          },
          "mid_center_title": {
            "type": "string",
            "description": "Header for the details in mid_center_content\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Min APR:** 14.99%",
            "maxLength": 128
          },
          "mid_center_content": {
            "type": "string",
            "description": "Product specific detail for the header in mid_center_title\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Min APR:** 14.99%",
            "maxLength": 128
          },
          "mid_right_title": {
            "type": "string",
            "description": "Header for the details in mid_right_content\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Max APR:** 23.99%",
            "maxLength": 128
          },
          "mid_right_content": {
            "type": "string",
            "description": "Product specific detail for the header in mid_right_title\nEx: The 2 fields would pair as shown below using the response example for the product above:\n**Max APR:** 23.99%",
            "maxLength": 128
          },
          "rate_sheet_merchant_product_price_id": {
            "type": "integer",
            "description": "Integer used to identify the loan product on the merchant's rate sheet. This should be sent when making a PATCH request to update a rate sheet."
          },
          "product_name": {
            "type": "string",
            "description": "Momnt Loan Product ID",
            "maxLength": 128
          },
          "product_category": {
            "type": "string",
            "description": "The product category that can be used to group products on the merchant's rate sheet. Available categories\ninclude:\n\n- **Fixed Payment**\n- **Deferred Interest**\n- **Fixed Rate**\n- **Zero Interest**",
            "maxLength": 128
          },
          "product_type": {
            "type": "string",
            "description": "The product family the product belongs to (ex. TRD)",
            "maxLength": 128
          },
          "full_term": {
            "type": "string",
            "description": "Total term length for the loan product. Annual percentage rate for the loan product. May be a single value or range depending on loan product.",
            "maxLength": 128
          },
          "apr": {
            "type": "string",
            "description": "Annual percentage rate for the loan product. May be a single value or range depending on loan product.",
            "maxLength": 128
          },
          "short_description": {
            "type": "string",
            "maxLength": 128
          },
          "long_description": {
            "type": "string",
            "maxLength": 128
          },
          "customer_preferences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Customer type(s) that would find this loan product appealing. Could include 1 or all of the below:\n- **promotion_motivated**\n- **interest_rate_sensitive**\n- **payment_sensitive**"
          },
          "max_credit_limit": {
            "type": "integer"
          },
          "payment_factor_low": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,6}(?:\\.\\d{0,4})?$"
          },
          "payment_factor_high": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,6}(?:\\.\\d{0,4})?$"
          },
          "priority": {
            "type": "integer"
          },
          "rank": {
            "type": "integer"
          },
          "partial_product_availability": {
            "type": "boolean"
          },
          "group_id": {
            "type": "string",
            "maxLength": 128
          }
        },
        "required": [
          "apr",
          "customer_preferences",
          "full_term",
          "group_id",
          "is_active",
          "is_plus",
          "is_recommended",
          "long_description",
          "max_credit_limit",
          "merchant_fee",
          "merchant_selected",
          "mid_center_content",
          "mid_center_title",
          "mid_left_content",
          "mid_left_title",
          "mid_right_content",
          "mid_right_title",
          "partial_product_availability",
          "payment_factor_high",
          "payment_factor_low",
          "priority",
          "product_category",
          "product_name",
          "product_type",
          "rank",
          "rate_sheet_merchant_product_price_id",
          "short_description",
          "top_center_content",
          "top_center_title",
          "top_left_content",
          "top_left_title",
          "top_right_content",
          "top_right_title"
        ]
      },
      "PartnerMerchantRateSheetSelect": {
        "type": "object",
        "properties": {
          "rate_sheet_merchant_product_price_id": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "merchant_selected": {
            "type": "boolean"
          }
        },
        "required": [
          "rate_sheet_merchant_product_price_id"
        ]
      },
      "PartnerMerchantRateSheetSelectList": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "External Partner user ID of an existing user set up at Momnt who is initiating the change to the rate sheet. This user must be an active merchant admin user for the merchant the update is being requested for.",
            "maxLength": 255
          },
          "rate_sheet_merchant_product_price_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantRateSheetSelect"
            },
            "description": "An array of products that should be updated and the is_active value they should be updated to. See subsequent fields."
          },
          "external_org_id": {
            "type": "string",
            "description": "Should be provided when merchant is part of a multi-location hierarchy.",
            "maxLength": 255
          }
        },
        "required": [
          "rate_sheet_merchant_product_price_ids",
          "request_user_id"
        ]
      },
      "PartnerMerchantStatementDetail": {
        "type": "object",
        "properties": {
          "merchant_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantBasicInfo"
              }
            ],
            "readOnly": true
          },
          "statement_summary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PartnerMerchantStatementList"
              }
            ],
            "readOnly": true
          },
          "success_statement_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantStatementTransactionGroup"
            },
            "readOnly": true
          },
          "fail_statement_details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantStatementTransactionGroup"
            },
            "readOnly": true
          }
        },
        "required": [
          "fail_statement_details",
          "merchant_info",
          "statement_summary",
          "success_statement_details"
        ]
      },
      "PartnerMerchantStatementList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "statement_date": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "statement_number": {
            "type": "string",
            "maxLength": 10
          },
          "statement_begin_date": {
            "type": "string",
            "format": "date"
          },
          "statement_end_date": {
            "type": "string",
            "format": "date"
          },
          "total_charges": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_refunds": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "net_purchases": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "sponsor_fees": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,2})?$"
          },
          "total_net_merchant_receipt": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "net_merchant_fees": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_credit_limit_approved": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,28}(?:\\.\\d{0,2})?$"
          },
          "applications_submitted": {
            "type": "integer",
            "minimum": 0
          },
          "applications_approved_accepted": {
            "type": "integer",
            "minimum": 0
          }
        },
        "required": [
          "applications_approved_accepted",
          "applications_submitted",
          "id",
          "net_merchant_fees",
          "net_purchases",
          "sponsor_fees",
          "statement_begin_date",
          "statement_date",
          "statement_end_date",
          "statement_number",
          "total_charges",
          "total_credit_limit_approved",
          "total_net_merchant_receipt",
          "total_refunds"
        ]
      },
      "PartnerMerchantStatementTransactionGroup": {
        "type": "object",
        "properties": {
          "transaction_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "consumer_name": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "consumer_loan_number": {
            "type": "string",
            "nullable": true,
            "maxLength": 10
          },
          "consumer_loan_product": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "merchant_fee_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,15}(?:\\.\\d{0,5})?$"
          },
          "merchant_fee_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "sponsor_fee_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "transaction_description": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "net_merchant_receipt": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          },
          "total_transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,18}(?:\\.\\d{0,2})?$"
          }
        },
        "required": [
          "merchant_fee_amount",
          "merchant_fee_percentage",
          "net_merchant_receipt",
          "total_transaction_amount"
        ]
      },
      "PartnerMerchantUserBatchCreate400ResponseSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "detail": {
            "type": "string"
          },
          "user_id": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255
            },
            "description": "List of `user_id` values for which a merchant user already exist in the database."
          },
          "emails": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "email"
            },
            "description": "List of `email` values for which a user already exist in the database."
          }
        },
        "required": [
          "detail"
        ]
      },
      "PartnerMerchantUserBatchCreateResponseSchema": {
        "type": "object",
        "properties": {
          "artis_merchant_user_id": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          }
        }
      },
      "PartnerMerchantUserCreateBase": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string"
          },
          "user_type": {
            "enum": [
              "Admin",
              "Salesperson",
              "Salesmanager",
              "Salesrep"
            ],
            "type": "string",
            "description": "* `Admin` - Admin\n* `Salesperson` - Salesperson\n* `Salesmanager` - Salesmanager\n* `Salesrep` - Salesrep",
            "x-spec-enum-id": "c42fccdaad47136b",
            "writeOnly": true
          },
          "user_id": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "phone_number",
          "user_id",
          "user_type"
        ]
      },
      "PartnerMerchantUserCreateRequestSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string",
            "description": "Format as: +15552223333"
          },
          "user_type": {
            "enum": [
              "Admin",
              "Salesperson",
              "Salesmanager",
              "Salesrep"
            ],
            "type": "string",
            "description": "* `Admin` - Admin\n* `Salesperson` - Salesperson\n* `Salesmanager` - Salesmanager\n* `Salesrep` - Salesrep",
            "x-spec-enum-id": "c42fccdaad47136b",
            "writeOnly": true
          },
          "user_id": {
            "type": "string",
            "description": "Partner assigned user ID",
            "maxLength": 255
          },
          "request_user_id": {
            "type": "string",
            "description": "Partner assigned user ID of who is requesting the creation of a new contractor user. This should be an Admin level user. Momnt Database field: user.external_user_id",
            "maxLength": 255
          },
          "external_org_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255
            },
            "description": "When a merchant is configured with a multi-location hierarchy, this value becomes required."
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "phone_number",
          "request_user_id",
          "user_id",
          "user_type"
        ]
      },
      "PartnerMerchantUserCreateResponseSchema": {
        "type": "object",
        "properties": {
          "artis_merchant_user_id": {
            "type": "string",
            "format": "uuid"
          },
          "reward_id": {
            "type": "string"
          }
        },
        "required": [
          "artis_merchant_user_id",
          "reward_id"
        ]
      },
      "PartnerMerchantUserRead": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "readOnly": true
          },
          "last_name": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "readOnly": true
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          },
          "user_type": {
            "type": "string",
            "readOnly": true
          },
          "is_active": {
            "type": "boolean",
            "readOnly": true
          },
          "user_id": {
            "type": "string",
            "readOnly": true
          },
          "reward_id": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "email",
          "first_name",
          "is_active",
          "last_name",
          "phone_number",
          "reward_id",
          "user_id",
          "user_type"
        ]
      },
      "PartnerMerchantUserRetrieve": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "has_access_to": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "description": "List of merchant external org IDs that the merchant user has access to."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the merchant user is active."
          }
        },
        "required": [
          "has_access_to",
          "is_active"
        ]
      },
      "PartnerMerchantVerifyMicroDeposits": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "micro_deposit_amount_1": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
            "description": "First Micro-Deposit amount. Order does not matter."
          },
          "micro_deposit_amount_2": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,1}(?:\\.\\d{0,2})?$",
            "description": "Second Micro-Deposit amount. Order does not matter."
          },
          "external_org_id": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "micro_deposit_amount_1",
          "micro_deposit_amount_2"
        ]
      },
      "PartnerRefundConsumerPaymentRequestCreate": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The partner's merchant user UUID for the user making the request.",
            "maxLength": 255
          },
          "consumer_application_uuid": {
            "type": "string",
            "description": "The identifier in the partner system for this loan application.",
            "maxLength": 128
          },
          "payment_identifier": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              }
            ],
            "description": "Payment identifier number of consumer transaction"
          },
          "consumer_refund_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Total amount being refunded to the consumer"
          },
          "net_to_merchant_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer refund that should be debited from merchant"
          },
          "net_to_sponsor_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount out of the consumer refund that should be credited from the merchant deposit and debited from the sponsor. (i.e. processing fees, materials, etc.)."
          },
          "net_artis_fee": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "description": "Net amount due to Momnt for the transaction - this should equal consumer charge amount * merchant fee % for the loan product. This should be pulled directly from the merchant's rate sheet every time - the refund will fail if the amount is incorrect."
          },
          "transaction_callback_url": {
            "type": "string",
            "format": "uri",
            "description": "When consumer refunded is completed (Successful or Failed), Momnt will POST information to this fully qualified URL."
          },
          "external_org_id": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "consumer_application_uuid",
          "consumer_refund_amount",
          "net_artis_fee",
          "net_to_merchant_amount",
          "net_to_sponsor_amount",
          "payment_identifier",
          "request_user_id",
          "transaction_callback_url"
        ]
      },
      "PartnerRefundRequest": {
        "type": "object",
        "properties": {
          "accountID": {
            "type": "string",
            "format": "uuid"
          },
          "transferID": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "enum": [
              "queued",
              "pending",
              "completed",
              "canceled",
              "failed",
              "reversed",
              "source.initiated",
              "source.confirmed",
              "source.failed",
              "source.completed",
              "source.canceled",
              "source.originated",
              "source.corrected",
              "source.returned",
              "source.settled",
              "destination.initiated",
              "destination.originated",
              "destination.corrected",
              "destination.returned",
              "destination.completed"
            ],
            "type": "string",
            "description": "* `queued` - queued\n* `pending` - pending\n* `completed` - completed\n* `canceled` - canceled\n* `failed` - failed\n* `reversed` - reversed\n* `source.initiated` - source.initiated\n* `source.confirmed` - source.confirmed\n* `source.failed` - source.failed\n* `source.completed` - source.completed\n* `source.canceled` - source.canceled\n* `source.originated` - source.originated\n* `source.corrected` - source.corrected\n* `source.returned` - source.returned\n* `source.settled` - source.settled\n* `destination.initiated` - destination.initiated\n* `destination.originated` - destination.originated\n* `destination.corrected` - destination.corrected\n* `destination.returned` - destination.returned\n* `destination.completed` - destination.completed",
            "x-spec-enum-id": "c08fbdda6f6bebfd"
          },
          "source": {
            "$ref": "#/components/schemas/SourceDestination"
          },
          "destination": {
            "$ref": "#/components/schemas/SourceDestination"
          }
        },
        "required": [
          "accountID",
          "destination",
          "source",
          "status",
          "transferID"
        ]
      },
      "PartnerRefundableTransactionList": {
        "type": "object",
        "properties": {
          "transaction_description": {
            "type": "string",
            "maxLength": 255
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "submitted_by": {
            "type": "string",
            "readOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "maxLength": 64
          },
          "max_refundable_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          },
          "refunded_transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConsumerRefundedTransactionList"
            },
            "readOnly": true
          },
          "full_refund_available": {
            "type": "boolean"
          },
          "partial_refund_available": {
            "type": "boolean"
          }
        },
        "required": [
          "created",
          "full_refund_available",
          "max_refundable_amount",
          "partial_refund_available",
          "refunded_transactions",
          "submitted_by",
          "transaction_amount",
          "transaction_description"
        ]
      },
      "PartnerSettledTransactionResponseSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "is_settled": {
            "type": "boolean",
            "description": "If `settled` = `true`, then the funds from the transaction are in the destination account.\nIf `settled` = `false`, then the funds from the transaction are not in the destination account."
          },
          "payment_identifier": {
            "type": "string"
          }
        },
        "required": [
          "is_settled",
          "payment_identifier"
        ]
      },
      "PartnerSettledTransactionUpdate": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "payment_identifier": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              }
            ],
            "description": "The payment_identifier that was sent in the callback of the original transaction."
          }
        },
        "required": [
          "payment_identifier"
        ]
      },
      "PatchedAddress": {
        "type": "object",
        "properties": {
          "address_type": {
            "enum": [
              "Main/HQ",
              "Home",
              "Work",
              "Other",
              "Collections Agency"
            ],
            "type": "string",
            "description": "* `Main/HQ` - Main/HQ\n* `Home` - Home\n* `Work` - Work\n* `Other` - Other\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "4b3e23bbd4bee69a"
          },
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          },
          "address_verification_response": {
            "nullable": true
          }
        }
      },
      "PatchedAddressUser": {
        "type": "object",
        "properties": {
          "address_1": {
            "type": "string",
            "maxLength": 255
          },
          "address_2": {
            "type": "string",
            "maxLength": 255
          },
          "city": {
            "type": "string",
            "maxLength": 255
          },
          "state": {
            "type": "string",
            "maxLength": 2
          },
          "zip_code": {
            "type": "string",
            "maxLength": 10
          }
        }
      },
      "PatchedApprovedMerchantDetails": {
        "type": "object",
        "properties": {
          "phone": {
            "type": "string",
            "readOnly": true
          },
          "can_update_risk_tier": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "can_update_status": {
            "type": "string",
            "readOnly": true
          },
          "consumer_facing_brand": {
            "type": "string"
          },
          "change_rate_sheet": {
            "type": "string",
            "readOnly": true
          },
          "can_update_display_name": {
            "type": "string",
            "readOnly": true
          },
          "staged_funding_applied": {
            "type": "string",
            "readOnly": true
          },
          "sub_program": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "program": {
            "type": "string"
          },
          "offer_codes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OfferCodes"
            }
          },
          "rate_sheet": {
            "type": "string",
            "readOnly": true
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "merchant_facing_brand": {
            "type": "string"
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "risk_tier": {
            "type": "string"
          },
          "hubspot_url": {
            "type": "string",
            "readOnly": true
          },
          "application_uuid": {
            "type": "string",
            "readOnly": true
          },
          "address": {
            "type": "string",
            "readOnly": true
          },
          "has_custom_staged_funding": {
            "type": "string",
            "readOnly": true
          },
          "internal_id": {
            "type": "string"
          }
        }
      },
      "PatchedCertificateOfCompletionConsumerSign": {
        "type": "object",
        "properties": {
          "consumer_consented_on": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PatchedConsentTypesConsumerApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer",
            "readOnly": true
          },
          "consumer_application": {
            "type": "integer",
            "readOnly": true
          },
          "consent_type": {
            "type": "integer"
          },
          "presented_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "document": {
            "type": "string",
            "format": "uri"
          },
          "opt_in": {
            "type": "boolean"
          },
          "consent_text": {
            "type": "string"
          },
          "user_timezone": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "lender_doc": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PatchedConsentTypesMerchantApplication": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer",
            "readOnly": true
          },
          "merchant_application": {
            "type": "integer",
            "readOnly": true
          },
          "presented_on": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "consented_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "consent_type": {
            "type": "integer"
          }
        }
      },
      "PatchedConsumerAccount": {
        "type": "object",
        "properties": {
          "edit_dq_exclusion_reason": {
            "type": "boolean",
            "readOnly": true
          },
          "total_pay_off_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "merchant_phone_number": {
            "type": "string"
          },
          "crb_stuck_loan": {
            "type": "boolean",
            "description": "Check if the loan is stuck in the CRB lender funding",
            "readOnly": true
          },
          "servicer_name": {
            "type": "string",
            "readOnly": true,
            "nullable": true
          },
          "total_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "repay_link": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "collections_agency": {
            "type": "integer",
            "nullable": true
          },
          "first_billing_cycle_date": {
            "type": "string",
            "readOnly": true
          },
          "dq_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DQStatus"
              }
            ],
            "default": {}
          },
          "suppress_email_communication": {
            "type": "boolean"
          },
          "scra": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "first_payment_due_date": {
            "type": "string",
            "readOnly": true
          },
          "bill_load_file_date": {
            "type": "string",
            "format": "date"
          },
          "maturity_date": {
            "type": "string",
            "readOnly": true
          },
          "product_details": {
            "type": "string"
          },
          "can_make_payment": {
            "type": "boolean",
            "readOnly": true
          },
          "loan_number": {
            "type": "string",
            "title": "Application ID/Loan number",
            "maxLength": 28
          },
          "next_billing_date": {
            "type": "string",
            "format": "date"
          },
          "late_fees_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "next_payment_due_date": {
            "type": "string",
            "readOnly": true
          },
          "total_amount_past_due": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "fees_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "note": {
            "type": "string"
          },
          "consumer_facing_brand": {
            "type": "string"
          },
          "preferred_language": {
            "$ref": "#/components/schemas/PreferredLanguage"
          },
          "max_approved_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "make_payment": {
            "type": "boolean",
            "readOnly": true
          },
          "can_update_credit_limit": {
            "type": "boolean",
            "readOnly": true
          },
          "update_dob": {
            "type": "boolean",
            "readOnly": true
          },
          "staged_funding_applied": {
            "type": "boolean",
            "readOnly": true
          },
          "dq_exclusion_reason": {
            "type": "boolean",
            "readOnly": true
          },
          "remaining_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "consumer_name": {
            "type": "string"
          },
          "link_to_borrower_agreement_amortization": {
            "type": "string",
            "format": "uri"
          },
          "payment_reversal_fee": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "promo_end_date": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "apr": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,1}(?:\\.\\d{0,4})?$"
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "payment_due": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "product_name": {
            "type": "string"
          },
          "late_fee_amount": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "property_address": {
            "$ref": "#/components/schemas/ConsumerAddress"
          },
          "servicing_account": {
            "type": "string"
          },
          "loss_mitigator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LossMitigator"
              }
            ],
            "readOnly": true
          },
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4,
            "minLength": 4
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "link_to_borrower_agreement_origination": {
            "type": "string",
            "format": "uri"
          },
          "loan_product_title": {
            "type": "string"
          },
          "account_status": {
            "type": "string"
          },
          "origination_date": {
            "type": "string",
            "format": "date"
          },
          "designated_bank_account_payment_provider": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "conversion_date": {
            "type": "string",
            "readOnly": true
          },
          "purchase_window_end_date": {
            "type": "string",
            "readOnly": true
          },
          "merchant": {
            "$ref": "#/components/schemas/ConsumerMerchant"
          },
          "payment_due_date": {
            "type": "string",
            "format": "date"
          },
          "update_ssn_last_four": {
            "type": "boolean",
            "readOnly": true
          },
          "lender": {
            "type": "string"
          },
          "current_amount_spent": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "can_update_risk_status": {
            "type": "boolean",
            "readOnly": true
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/ConsumerAddress"
          },
          "update_address": {
            "type": "boolean",
            "readOnly": true
          },
          "transunion_ssn_last_four": {
            "type": "string"
          },
          "current_principal_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "finance_charge_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "user": {
            "type": "integer"
          },
          "request_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "deferred_finance_charge_balance": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "risk_status": {
            "type": "string"
          }
        }
      },
      "PatchedConsumerAccountCreditLimit": {
        "type": "object",
        "properties": {
          "credit_limit": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "note": {
            "type": "string"
          }
        }
      },
      "PatchedConsumerBasicInfo": {
        "type": "object",
        "description": "Mixin to allow partial updates of model instances.\nThis mixin overrides the default `update` method to allow partial updates\nof model instances, which is useful when you want to update only a subset\nof fields without requiring all fields to be provided.\nWhen using this mixin, it should be the first parent class in order to ensure\nthat this `update` method is called.",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "PatchedConsumerIdInformationSensitive": {
        "type": "object",
        "properties": {
          "id_type": {
            "type": "integer",
            "nullable": true
          },
          "id_state": {
            "type": "string"
          },
          "id_country": {
            "type": "string",
            "maxLength": 255
          },
          "id_number": {
            "type": "string",
            "maxLength": 255
          },
          "id_issue_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "id_expiration_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          }
        }
      },
      "PatchedConsumerNonCashTransactionUpdate": {
        "type": "object",
        "properties": {
          "transaction_status": {
            "type": "integer",
            "writeOnly": true
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "effective_date": {
            "type": "string",
            "format": "date-time",
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        }
      },
      "PatchedConsumerPaymentRequestDecision": {
        "type": "object",
        "properties": {
          "is_approved": {
            "type": "boolean"
          }
        }
      },
      "PatchedConsumerPaymentRequestList": {
        "type": "object",
        "properties": {
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "deactivate_date": {
            "type": "string",
            "format": "date-time"
          },
          "amount": {
            "type": "string",
            "readOnly": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "transaction_type": {
            "type": "string",
            "default": ""
          },
          "sms_status": {
            "type": "string",
            "maxLength": 20
          },
          "merchant_name": {
            "type": "string"
          },
          "is_active": {
            "type": "boolean"
          },
          "request_status_detail": {
            "$ref": "#/components/schemas/RequestStatusDetail"
          }
        }
      },
      "PatchedConsumerRecurringPaymentsSettings": {
        "type": "object",
        "properties": {
          "custom_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,17}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "custom_day_of_month": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648,
            "nullable": true
          }
        }
      },
      "PatchedConsumerTransaction": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "effective_date": {
            "type": "string",
            "format": "date-time"
          },
          "transaction_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,30}(?:\\.\\d{0,2})?$"
          },
          "transaction_status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "transaction_status_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TransactionStatusReason"
              }
            ],
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "payment_identifier": {
            "type": "string",
            "writeOnly": true
          }
        }
      },
      "PatchedConsumerTransactionExclude": {
        "type": "object",
        "properties": {
          "excluded_reason": {
            "type": "string",
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          }
        }
      },
      "PatchedConsumerUpdateInfo": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "ssn": {
            "type": "string"
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$"
          }
        }
      },
      "PatchedEnterpriseUser": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "userid": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnterpriseUserRole"
            }
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "is_active": {
            "type": "boolean"
          }
        }
      },
      "PatchedExternalOfferCodeCreateSchema": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "format": "uuid",
            "description": "External Partner user ID of an existing user set up at Momnt who creating the Offer Code.\nThis user must be an active merchant admin user for the Merchant used in the contractor_id path."
          },
          "name": {
            "type": "string",
            "description": "The name of the Offer Code. Alpha string between 2 and 80 characters. Spaces are allowed.",
            "maxLength": 80,
            "minLength": 2
          },
          "is_active": {
            "type": "boolean",
            "description": "Boolean field indication whether the merchant wants this Offer Code turned on or not after creation."
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {},
            "description": "The value of the rate_sheet_merchant_product_price_id (found in the Merchant Rate Sheet Query)\nof the products the Merchant wants to add to this rate sheet.",
            "maxItems": 7,
            "minItems": 2
          }
        }
      },
      "PatchedMerchant": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "human_readable_id": {
            "type": "string",
            "maxLength": 10
          },
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "program": {
            "type": "integer"
          },
          "sub_program": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "merchantowner_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantOwnerViewset"
            },
            "readOnly": true
          },
          "agreement": {
            "type": "string",
            "format": "uri"
          },
          "status": {
            "type": "integer"
          },
          "address_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "readOnly": true
          },
          "phonenumber_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            },
            "readOnly": true
          },
          "sensitive_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SensitiveRead"
            },
            "readOnly": true
          },
          "card_token_data": {
            "type": "string",
            "readOnly": true
          },
          "all_attributes": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Sponsor"
              }
            ],
            "readOnly": true
          },
          "external_org_id": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          },
          "program_uuid": {
            "type": "string",
            "readOnly": true
          },
          "display_name": {
            "type": "string",
            "nullable": true,
            "maxLength": 255
          }
        }
      },
      "PatchedMerchantApplicationUpdate": {
        "type": "object",
        "properties": {
          "application_status": {
            "type": "string"
          },
          "application_status_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "application_status_reason": {
            "type": "integer"
          },
          "note": {
            "type": "string",
            "default": ""
          }
        }
      },
      "PatchedMerchantApplicationWrite": {
        "type": "object",
        "properties": {
          "application_status": {
            "type": "string"
          },
          "application_status_reason": {
            "type": "string"
          },
          "re_sent_email_sent_on": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "merchant": {
            "type": "integer"
          }
        }
      },
      "PatchedMerchantCreateUpdate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "dba": {
            "type": "string",
            "maxLength": 255
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "create_address": {
            "type": "boolean",
            "writeOnly": true
          },
          "address_1": {
            "type": "string",
            "writeOnly": true
          },
          "address_2": {
            "type": "string",
            "writeOnly": true
          },
          "city": {
            "type": "string",
            "writeOnly": true
          },
          "state": {
            "type": "string",
            "writeOnly": true
          },
          "zip": {
            "type": "string",
            "writeOnly": true
          },
          "address_verification_response": {},
          "merchant_application_uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "human_readable_id": {
            "type": "string",
            "readOnly": true
          },
          "merchant_phone": {
            "type": "string"
          },
          "sponsor": {
            "type": "string",
            "format": "uuid"
          },
          "program_uuid": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "PatchedMerchantOwnerUserCreateUpdate": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "street_address_1": {
            "type": "string"
          },
          "street_address_2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip": {
            "type": "string"
          },
          "address_verification_response": {},
          "phone_number": {
            "type": "string"
          },
          "ssn": {
            "type": "string"
          },
          "dob": {
            "type": "string",
            "format": "date"
          },
          "security_pin": {
            "type": "string"
          },
          "owner_percentage": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$"
          }
        }
      },
      "PatchedMerchantOwnerWithContactDataViewset": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "uid": {
            "type": "string",
            "format": "uuid"
          },
          "owner_percentage": {
            "type": "integer",
            "maximum": 100,
            "minimum": 10
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "address": {
            "$ref": "#/components/schemas/AddressOwner"
          },
          "phone_number": {
            "$ref": "#/components/schemas/PhoneNumber"
          },
          "sensitive_set": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MerchantOwnerSensitive"
              }
            ],
            "writeOnly": true
          }
        }
      },
      "PatchedMerchantStatusUpdate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "status_id": {
            "type": "integer"
          }
        }
      },
      "PatchedMerchantUser": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "reward_id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "readOnly": true
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "last_login": {
            "type": "string",
            "format": "date-time"
          },
          "is_merchant_owner": {
            "type": "string",
            "readOnly": true
          },
          "user_is_locked": {
            "type": "boolean"
          },
          "reset_login_attempts": {
            "type": "string",
            "readOnly": true
          },
          "date_joined": {
            "type": "string",
            "format": "date"
          },
          "hubspot_url": {
            "type": "string",
            "readOnly": true
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Flatten and deduplicate descendant location names across all accessible locations.",
            "readOnly": true
          }
        }
      },
      "PatchedMerchantUserPrimaryLocationUpdate": {
        "type": "object",
        "properties": {
          "merchant_uuid": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "PatchedMerchantUserViewSetWrite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "user": {
            "type": "integer"
          },
          "is_primary": {
            "type": "boolean"
          },
          "contact_type": {
            "type": "integer",
            "nullable": true
          },
          "user_type": {
            "enum": [
              "Admin",
              "Salesperson",
              "Salesmanager",
              "Salesrep"
            ],
            "type": "string",
            "description": "* `Admin` - Admin\n* `Salesperson` - Salesperson\n* `Salesmanager` - Salesmanager\n* `Salesrep` - Salesrep",
            "x-spec-enum-id": "c42fccdaad47136b",
            "writeOnly": true
          }
        }
      },
      "PatchedMerchantUsersAtThisLocationWrite": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "phone_number": {
            "type": "string"
          },
          "role": {
            "enum": [
              "merchant-admin",
              "merchant-sales-rep",
              "merchant-sales-manager"
            ],
            "type": "string",
            "description": "* `merchant-admin` - merchant-admin\n* `merchant-sales-rep` - merchant-sales-rep\n* `merchant-sales-manager` - merchant-sales-manager",
            "x-spec-enum-id": "33122be08b53e11c"
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "status": {
            "enum": [
              "Active",
              "Inactive"
            ],
            "type": "string",
            "description": "* `Active` - Active\n* `Inactive` - Inactive",
            "x-spec-enum-id": "2d9455dd451bbf4b",
            "default": "Active"
          }
        }
      },
      "PatchedOfferCodeWrite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "rate_sheet_merchant_product_prices": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      },
      "PatchedPartnerConsumerOfferUpdate": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "The ID of the user in the partner system making the application soft pull request.",
            "maxLength": 255
          },
          "external_application_id": {
            "type": "string",
            "description": "The unique identifier in the partner system for this loan application.",
            "maxLength": 255
          }
        }
      },
      "PatchedPartnerMerchantRateSheetSelectList": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "request_user_id": {
            "type": "string",
            "description": "External Partner user ID of an existing user set up at Momnt who is initiating the change to the rate sheet. This user must be an active merchant admin user for the merchant the update is being requested for.",
            "maxLength": 255
          },
          "rate_sheet_merchant_product_price_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerMerchantRateSheetSelect"
            },
            "description": "An array of products that should be updated and the is_active value they should be updated to. See subsequent fields."
          },
          "external_org_id": {
            "type": "string",
            "description": "Should be provided when merchant is part of a multi-location hierarchy.",
            "maxLength": 255
          }
        }
      },
      "PatchedPartnerMerchantUserUpdate": {
        "type": "object",
        "properties": {
          "request_user_id": {
            "type": "string",
            "maxLength": 255
          },
          "user_id": {
            "type": "string",
            "maxLength": 255
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "is_active": {
            "type": "boolean"
          },
          "phone_number": {
            "type": "string"
          },
          "user_type": {
            "enum": [
              "Admin",
              "Salesperson",
              "Salesmanager",
              "Salesrep"
            ],
            "type": "string",
            "description": "* `Admin` - Admin\n* `Salesperson` - Salesperson\n* `Salesmanager` - Salesmanager\n* `Salesrep` - Salesrep",
            "x-spec-enum-id": "c42fccdaad47136b",
            "writeOnly": true
          },
          "external_org_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 255
            }
          }
        }
      },
      "PatchedPhoneNumber": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "phone_number_type": {
            "enum": [
              "Cell",
              "Home",
              "Main",
              "Sales",
              "Back Office",
              "Alternate",
              "Skiptrace",
              "Employer",
              "Collections Agency"
            ],
            "type": "string",
            "description": "* `Cell` - Cell\n* `Home` - Home\n* `Main` - Main\n* `Sales` - Sales\n* `Back Office` - Back Office\n* `Alternate` - Alternate\n* `Skiptrace` - Skiptrace\n* `Employer` - Employer\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "fa6343f5cb6acedc"
          },
          "phone_number": {
            "type": "string",
            "maxLength": 128
          },
          "extension": {
            "type": "string",
            "maxLength": 15
          },
          "user": {
            "type": "integer",
            "nullable": true
          },
          "merchant": {
            "type": "integer",
            "nullable": true
          },
          "merchant_owner": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PatchedPortfolioSalesJob": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "errors": {
            "nullable": true
          },
          "total_records": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": 0,
            "nullable": true
          }
        }
      },
      "PatchedPreferredLanguage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "language": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PatchedQAConsumerAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "account_status_id": {
            "type": "integer"
          }
        }
      },
      "PatchedRateSheetUpdateMerchantFee": {
        "type": "object",
        "properties": {
          "merchant_fee_change_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,2}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "increase_merchant_fee": {
            "type": "boolean",
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "merchant_fee": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "PatchedRecurringPaymentUpdateSettings": {
        "type": "object",
        "properties": {
          "recurring_payments": {
            "type": "boolean"
          },
          "recurring_payment_option": {
            "$ref": "#/components/schemas/PaymentProviderOption"
          },
          "custom_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,17}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "custom_day_of_month": {
            "type": "integer",
            "maximum": 31,
            "minimum": 1,
            "nullable": true
          }
        }
      },
      "PatchedRecurringPayments": {
        "type": "object",
        "properties": {
          "recurring_payments": {
            "type": "boolean"
          },
          "payment_provider_details": {
            "type": "integer",
            "minimum": 0,
            "writeOnly": true
          },
          "payment_provider_option_id": {
            "type": "string"
          },
          "payment_provider_option_type": {
            "enum": [
              "bank",
              "card"
            ],
            "type": "string",
            "description": "* `bank` - bank\n* `card` - card",
            "x-spec-enum-id": "a542bc5ea6bba918",
            "writeOnly": true
          }
        }
      },
      "PatchedRiskStatusUpdate": {
        "type": "object",
        "properties": {
          "risk_status": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PatchedSensitive": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "ssn": {
            "type": "string",
            "maxLength": 255
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4
          },
          "transunion_ssn": {
            "type": "string",
            "maxLength": 255
          },
          "transunion_ssn_last_four": {
            "type": "string",
            "maxLength": 4
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "federal_tax_id": {
            "type": "string",
            "maxLength": 255
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "id_country": {
            "type": "string",
            "maxLength": 255
          },
          "id_number": {
            "type": "string",
            "maxLength": 255
          },
          "id_issue_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "id_expiration_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "account_number": {
            "type": "string",
            "maxLength": 255
          },
          "routing_number": {
            "type": "string",
            "maxLength": 255
          },
          "user": {
            "type": "integer",
            "nullable": true
          },
          "merchant": {
            "type": "integer",
            "nullable": true
          },
          "merchant_owner": {
            "type": "integer",
            "nullable": true
          },
          "id_type": {
            "type": "integer",
            "nullable": true
          },
          "id_state": {
            "type": "integer",
            "nullable": true
          },
          "lender": {
            "type": "integer",
            "nullable": true
          },
          "consumer_payment_provider_details": {
            "type": "integer",
            "nullable": true
          }
        }
      },
      "PatchedStagedFundingConfiguration": {
        "type": "object",
        "properties": {
          "risk_tier": {
            "type": "string",
            "readOnly": true
          },
          "initial_charge": {
            "$ref": "#/components/schemas/InitialCharge"
          },
          "project_charge": {
            "$ref": "#/components/schemas/ProjectCharge"
          },
          "final_charge": {
            "$ref": "#/components/schemas/FinalCharge"
          }
        }
      },
      "PatchedTransactionSettlement": {
        "type": "object",
        "properties": {
          "loan_number": {
            "type": "string"
          },
          "transaction_description": {
            "type": "string"
          }
        }
      },
      "PatchedUpdateApplicationStatusDetail": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "human_readable_id": {
            "type": "string"
          },
          "status_detail_id": {
            "type": "integer"
          },
          "status_id": {
            "type": "integer"
          }
        }
      },
      "PatchedUpdateBypassVerificationLogic": {
        "type": "object",
        "properties": {
          "bypass_verification_hold_logic": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "PatchedUserSession": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "last_refreshed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "logged_out_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PatchedUserViewSet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "address_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "phonenumber_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            },
            "readOnly": true
          },
          "sensitive_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SensitiveRead"
            },
            "readOnly": true
          },
          "is_active": {
            "type": "boolean",
            "title": "Active",
            "description": "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
          },
          "is_deleted": {
            "type": "boolean"
          }
        }
      },
      "PaymentMethodsData": {
        "type": "object",
        "properties": {
          "paymentMethodID": {
            "type": "string",
            "format": "uuid"
          },
          "accountID": {
            "type": "string",
            "format": "uuid"
          },
          "sourceID": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "accountID",
          "paymentMethodID",
          "sourceID"
        ]
      },
      "PaymentMethodsWebhook": {
        "type": "object",
        "properties": {
          "eventID": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "enum": [
              "paymentMethod.enabled",
              "paymentMethod.disabled"
            ],
            "type": "string",
            "description": "* `paymentMethod.enabled` - paymentMethod.enabled\n* `paymentMethod.disabled` - paymentMethod.disabled",
            "x-spec-enum-id": "7a5bcc8538725ff7"
          },
          "data": {
            "$ref": "#/components/schemas/PaymentMethodsData"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "createdOn",
          "data",
          "eventID",
          "type"
        ]
      },
      "PaymentProviderOption": {
        "type": "object",
        "properties": {
          "payment_provider_option_id": {
            "type": "string",
            "maxLength": 50
          },
          "payment_provider_option_type": {
            "enum": [
              "bank",
              "card"
            ],
            "type": "string",
            "description": "* `bank` - bank\n* `card` - card",
            "x-spec-enum-id": "a542bc5ea6bba918"
          }
        },
        "required": [
          "payment_provider_option_id",
          "payment_provider_option_type"
        ]
      },
      "PaymentRequestStatusEnum": {
        "enum": [
          "Expired",
          "Expired while session is active",
          "Already approved",
          "Errored",
          "Declined"
        ],
        "title": "PaymentRequestStatusEnum",
        "type": "string"
      },
      "Phone": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string"
          }
        },
        "required": [
          "phone_number"
        ]
      },
      "PhoneNumber": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "phone_number_type": {
            "enum": [
              "Cell",
              "Home",
              "Main",
              "Sales",
              "Back Office",
              "Alternate",
              "Skiptrace",
              "Employer",
              "Collections Agency"
            ],
            "type": "string",
            "description": "* `Cell` - Cell\n* `Home` - Home\n* `Main` - Main\n* `Sales` - Sales\n* `Back Office` - Back Office\n* `Alternate` - Alternate\n* `Skiptrace` - Skiptrace\n* `Employer` - Employer\n* `Collections Agency` - Collections Agency",
            "x-spec-enum-id": "fa6343f5cb6acedc"
          },
          "phone_number": {
            "type": "string",
            "maxLength": 128
          },
          "extension": {
            "type": "string",
            "maxLength": 15
          },
          "user": {
            "type": "integer",
            "nullable": true
          },
          "merchant": {
            "type": "integer",
            "nullable": true
          },
          "merchant_owner": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "id",
          "phone_number"
        ]
      },
      "PortfolioSalesJob": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          },
          "errors": {
            "nullable": true
          },
          "total_records": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": 0,
            "nullable": true
          }
        },
        "required": [
          "status"
        ]
      },
      "PortfolioSalesJobCreate": {
        "type": "object",
        "properties": {
          "purchase_date": {
            "type": "string",
            "format": "date",
            "writeOnly": true
          },
          "settlement_date": {
            "type": "string",
            "format": "date",
            "writeOnly": true
          },
          "description": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 50
          },
          "job_id": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "job_id",
          "purchase_date",
          "settlement_date"
        ]
      },
      "PortfolioSalesJobList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "finished_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "type": "string"
          },
          "errors": {
            "nullable": true
          },
          "purchase_date": {
            "type": "string",
            "format": "date"
          },
          "settlement_date": {
            "type": "string",
            "format": "date"
          },
          "description": {
            "type": "string"
          },
          "requested_by": {
            "type": "string",
            "readOnly": true
          },
          "total_records": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": 0,
            "nullable": true
          }
        },
        "required": [
          "created",
          "description",
          "id",
          "purchase_date",
          "requested_by",
          "settlement_date",
          "status"
        ]
      },
      "PortfolioSalesJobStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "PortfolioSalesJobValidation": {
        "type": "object",
        "description": "A serializer for validation of loan agreement file.\n- Each loan number should have exactly 10 digits\n- Each loan number must not have dashes or leading/lagging spaces\n- There is a \"Loan Number\" header as the first row\n- Each loan number is newline separated\nIf the file format validation succeeds, return a list of all valid loan numbers in the file.\nThe user will be able to use this information to verify back to their original source file.\n\nIf the file format validation fails, return: all errors encountered, a list of valid loan numbers in the file,\nand a list of invalid loan numbers in the file.",
        "properties": {
          "loan_tape_file": {
            "type": "string",
            "format": "uri",
            "writeOnly": true
          },
          "valid_loan_numbers": {
            "type": "array",
            "items": {},
            "readOnly": true
          },
          "invalid_loan_numbers": {
            "type": "array",
            "items": {},
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {},
            "readOnly": true
          }
        },
        "required": [
          "errors",
          "invalid_loan_numbers",
          "loan_tape_file",
          "valid_loan_numbers"
        ]
      },
      "PreSignURL": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "writeOnly": true
          },
          "document_type": {
            "type": "string",
            "writeOnly": true
          },
          "signed_url": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "signed_url",
          "url"
        ]
      },
      "PreferredLanguage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "language": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "language"
        ]
      },
      "ProductTermStructure": {
        "type": "object",
        "properties": {
          "product_name": {
            "type": "string",
            "maxLength": 255
          },
          "short_description": {
            "type": "string",
            "maxLength": 128
          },
          "apr_range": {
            "type": "string",
            "readOnly": true
          },
          "term_range": {
            "type": "string",
            "readOnly": true
          },
          "customer_preferences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          }
        },
        "required": [
          "apr_range",
          "customer_preferences",
          "term_range"
        ]
      },
      "Program": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "begin_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 5
          },
          "program_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "default_rate_sheet_template": {
            "type": "integer",
            "nullable": true
          },
          "vertical": {
            "type": "integer"
          }
        },
        "required": [
          "abbreviation",
          "begin_date",
          "id",
          "name",
          "vertical"
        ]
      },
      "ProjectCharge": {
        "type": "object",
        "properties": {
          "max_percentage": {
            "type": "integer"
          },
          "days_between": {
            "type": "integer",
            "default": 0
          }
        },
        "required": [
          "max_percentage"
        ]
      },
      "ProvisionalCreditApplied": {
        "type": "object",
        "properties": {
          "is_provisional_credit_applied": {
            "type": "string",
            "readOnly": true,
            "default": false
          }
        },
        "required": [
          "is_provisional_credit_applied"
        ]
      },
      "QAApiCallLog": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "create_date": {
            "type": "string",
            "format": "date-time"
          },
          "field_name": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "raw_message": {},
          "api_id": {
            "type": "integer"
          },
          "application_id": {
            "type": "integer"
          },
          "merchant_id": {
            "type": "integer"
          },
          "committed_at": {
            "type": "string",
            "format": "date-time"
          },
          "crb_guid": {
            "type": "string"
          },
          "crb_webhook_status": {
            "type": "integer"
          },
          "http_method": {
            "type": "string"
          },
          "logic_performed": {
            "type": "boolean"
          }
        },
        "required": [
          "api_id",
          "application_id",
          "committed_at",
          "crb_guid",
          "crb_webhook_status",
          "create_date",
          "field_name",
          "http_method",
          "id",
          "logic_performed",
          "merchant_id",
          "message",
          "raw_message"
        ]
      },
      "QAApiCallLogListResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QAApiCallLog"
            }
          }
        },
        "required": [
          "count",
          "results"
        ]
      },
      "QAConsumerAccount": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "account_status_id": {
            "type": "integer"
          }
        },
        "required": [
          "account_status_id",
          "id",
          "is_active"
        ]
      },
      "QAConsumerAccountUpdateResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "updates": {
            "$ref": "#/components/schemas/QAConsumerAccount"
          }
        },
        "required": [
          "message",
          "updates"
        ]
      },
      "RBL": {
        "type": "object",
        "properties": {
          "consumer_application": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_application": {
            "type": "string",
            "format": "uuid"
          },
          "merchant_owners": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantOwnerData"
            }
          },
          "phone_number": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        }
      },
      "RateSheetIdName": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "RateSheetOptimiationResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RateSheetIdName"
            }
          },
          "group": {
            "type": "string"
          },
          "max_visible_in_category": {
            "type": "integer"
          },
          "offer_code": {
            "$ref": "#/components/schemas/RateSheetIdName"
          }
        },
        "required": [
          "group",
          "max_visible_in_category",
          "offer_code",
          "products",
          "type"
        ]
      },
      "RateSheetOptimization": {
        "type": "object",
        "properties": {
          "product_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "type": {
            "enum": [
              "removal"
            ],
            "type": "string",
            "description": "* `removal` - removal",
            "x-spec-enum-id": "741057b44401df64"
          },
          "offer_code_id": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "product_ids",
          "type"
        ]
      },
      "RateSheetUpdateMerchantFee": {
        "type": "object",
        "properties": {
          "merchant_fee_change_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,2}(?:\\.\\d{0,2})?$",
            "writeOnly": true
          },
          "increase_merchant_fee": {
            "type": "boolean",
            "writeOnly": true
          },
          "note": {
            "type": "string",
            "writeOnly": true
          },
          "merchant_fee": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "increase_merchant_fee",
          "merchant_fee",
          "merchant_fee_change_amount",
          "note"
        ]
      },
      "RecentApplicationMerchant": {
        "type": "object",
        "properties": {
          "consumer_application_uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "consumer_invitation_uuid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "sent_to": {
            "type": "string",
            "readOnly": true
          },
          "id_number": {
            "type": "string",
            "readOnly": true
          },
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,8}(?:\\.\\d{0,2})?$",
            "readOnly": true
          },
          "product_id": {
            "type": "string",
            "readOnly": true
          },
          "product_description_parts": {
            "type": "string",
            "readOnly": true
          },
          "display_status": {
            "type": "string",
            "readOnly": true
          },
          "servicer_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "amount",
          "consumer_application_uuid",
          "consumer_invitation_uuid",
          "display_status",
          "id_number",
          "product_description_parts",
          "product_id",
          "sent_to",
          "servicer_name"
        ]
      },
      "RecurringPaymentOption": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "payment_provider_option_id": {
            "type": "string",
            "maxLength": 50
          },
          "payment_provider_option_type": {
            "type": "string",
            "maxLength": 20
          },
          "payment_method_last_four": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "id",
          "payment_method_last_four",
          "payment_provider_option_id",
          "payment_provider_option_type"
        ]
      },
      "RecurringPaymentSettings": {
        "type": "object",
        "properties": {
          "recurring_payments": {
            "type": "boolean",
            "nullable": true
          },
          "recurring_payment_option": {
            "$ref": "#/components/schemas/RecurringPaymentOption"
          },
          "payment_due_date": {
            "type": "string",
            "format": "date"
          },
          "total_current_due_balance": {
            "type": "integer",
            "nullable": true,
            "readOnly": true
          },
          "custom_amount": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "readOnly": true
          },
          "custom_day_of_month": {
            "type": "integer",
            "nullable": true,
            "readOnly": true
          }
        },
        "required": [
          "custom_amount",
          "custom_day_of_month",
          "recurring_payment_option",
          "total_current_due_balance"
        ]
      },
      "RecurringPaymentUpdateSettings": {
        "type": "object",
        "properties": {
          "recurring_payments": {
            "type": "boolean"
          },
          "recurring_payment_option": {
            "$ref": "#/components/schemas/PaymentProviderOption"
          },
          "custom_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,17}(?:\\.\\d{0,2})?$",
            "nullable": true
          },
          "custom_day_of_month": {
            "type": "integer",
            "maximum": 31,
            "minimum": 1,
            "nullable": true
          }
        },
        "required": [
          "recurring_payment_option",
          "recurring_payments"
        ]
      },
      "RecurringPayments": {
        "type": "object",
        "properties": {
          "recurring_payments": {
            "type": "boolean"
          },
          "payment_provider_details": {
            "type": "integer",
            "minimum": 0,
            "writeOnly": true
          },
          "payment_provider_option_id": {
            "type": "string"
          },
          "payment_provider_option_type": {
            "enum": [
              "bank",
              "card"
            ],
            "type": "string",
            "description": "* `bank` - bank\n* `card` - card",
            "x-spec-enum-id": "a542bc5ea6bba918",
            "writeOnly": true
          }
        },
        "required": [
          "recurring_payments"
        ]
      },
      "Repay": {
        "type": "object",
        "properties": {
          "can_transact": {
            "type": "boolean"
          },
          "status": {
            "enum": [
              "connected",
              "disconnected"
            ],
            "type": "string",
            "description": "* `connected` - connected\n* `disconnected` - disconnected",
            "x-spec-enum-id": "fee37c729ffeff01"
          },
          "number_of_active_loans": {
            "type": "integer"
          }
        },
        "required": [
          "can_transact",
          "number_of_active_loans",
          "status"
        ]
      },
      "RepayTokenPayment": {
        "type": "object",
        "properties": {
          "address_zip": {
            "type": "string"
          },
          "name_on_check": {
            "type": "string"
          },
          "ach_account_number": {
            "type": "string",
            "maxLength": 17,
            "minLength": 5
          },
          "ach_routing_number": {
            "type": "string",
            "maxLength": 9,
            "minLength": 9
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "sec_code": {
            "enum": [
              "CCD"
            ],
            "type": "string",
            "description": "* `CCD` - CCD",
            "x-spec-enum-id": "60f59961b64b43af",
            "default": "CCD"
          }
        },
        "required": [
          "ach_account_number",
          "ach_routing_number",
          "email",
          "name_on_check"
        ]
      },
      "RequestCardSale": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,4})?$"
          },
          "customer_id": {
            "type": "string"
          },
          "card_last_four": {
            "type": "string"
          },
          "card_name": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "card_last_four",
          "card_name",
          "customer_id"
        ]
      },
      "RequestCheckReturn": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,4})?$"
          },
          "customer_id": {
            "type": "string"
          },
          "routing_number": {
            "type": "string"
          },
          "name_on_check": {
            "type": "string"
          },
          "custom_fields": {
            "$ref": "#/components/schemas/CustomFieldsCheckReturn"
          }
        },
        "required": [
          "amount",
          "custom_fields",
          "customer_id",
          "name_on_check",
          "routing_number"
        ]
      },
      "RequestCheckSale": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,4})?$"
          },
          "customer_id": {
            "type": "string"
          },
          "routing_number": {
            "type": "string"
          },
          "name_on_check": {
            "type": "string"
          }
        },
        "required": [
          "amount",
          "customer_id",
          "name_on_check",
          "routing_number"
        ]
      },
      "RequestStatusDetail": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 128
          }
        },
        "required": [
          "name"
        ]
      },
      "ResultCardSale": {
        "type": "object",
        "properties": {
          "result_code": {
            "type": "string"
          },
          "auth_code": {
            "type": "string"
          },
          "resp_msg": {
            "type": "string"
          },
          "pn_ref": {
            "type": "string"
          }
        },
        "required": [
          "auth_code",
          "pn_ref",
          "resp_msg",
          "result_code"
        ]
      },
      "ResultCheckReturn": {
        "type": "object",
        "properties": {
          "resp_msg": {
            "type": "string"
          },
          "result_code": {
            "type": "string"
          },
          "pn_ref": {
            "type": "string"
          },
          "original_transaction_id": {
            "type": "string"
          }
        },
        "required": [
          "original_transaction_id",
          "pn_ref",
          "resp_msg",
          "result_code"
        ]
      },
      "ResultCheckSale": {
        "type": "object",
        "properties": {
          "resp_msg": {
            "type": "string"
          },
          "pn_ref": {
            "type": "string"
          }
        },
        "required": [
          "pn_ref",
          "resp_msg"
        ]
      },
      "RiskStatusList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "RiskStatusUpdate": {
        "type": "object",
        "properties": {
          "risk_status": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "risk_status"
        ]
      },
      "RiskTierList": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "SMSVerification": {
        "type": "object",
        "properties": {
          "phone_number": {
            "type": "string"
          },
          "session_token": {
            "type": "string"
          },
          "security_code": {
            "type": "string"
          }
        },
        "required": [
          "phone_number",
          "security_code",
          "session_token"
        ]
      },
      "Sensitive": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "ssn": {
            "type": "string",
            "maxLength": 255
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4
          },
          "transunion_ssn": {
            "type": "string",
            "maxLength": 255
          },
          "transunion_ssn_last_four": {
            "type": "string",
            "maxLength": 4
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "federal_tax_id": {
            "type": "string",
            "maxLength": 255
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          },
          "id_country": {
            "type": "string",
            "maxLength": 255
          },
          "id_number": {
            "type": "string",
            "maxLength": 255
          },
          "id_issue_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "id_expiration_date": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "account_number": {
            "type": "string",
            "maxLength": 255
          },
          "routing_number": {
            "type": "string",
            "maxLength": 255
          },
          "user": {
            "type": "integer",
            "nullable": true
          },
          "merchant": {
            "type": "integer",
            "nullable": true
          },
          "merchant_owner": {
            "type": "integer",
            "nullable": true
          },
          "id_type": {
            "type": "integer",
            "nullable": true
          },
          "id_state": {
            "type": "integer",
            "nullable": true
          },
          "lender": {
            "type": "integer",
            "nullable": true
          },
          "consumer_payment_provider_details": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "id"
        ]
      },
      "SensitiveRead": {
        "type": "object",
        "properties": {
          "user": {
            "type": "integer",
            "nullable": true
          },
          "merchant": {
            "type": "integer",
            "nullable": true
          },
          "ssn_last_four": {
            "type": "string",
            "maxLength": 4
          },
          "dob": {
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "gross_income": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,16}(?:\\.\\d{0,16})?$",
            "nullable": true
          },
          "security_pin": {
            "type": "string",
            "maxLength": 4
          }
        }
      },
      "Servicer": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "portal_url": {
            "type": "string",
            "format": "uri",
            "maxLength": 200
          }
        },
        "required": [
          "name"
        ]
      },
      "SmartyLocation": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string"
          },
          "secondary": {
            "type": "string",
            "nullable": true,
            "default": ""
          },
          "urbanization": {
            "type": "string",
            "default": ""
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zipcode": {
            "type": "string"
          },
          "candidates": {
            "type": "integer"
          },
          "match": {
            "type": "string"
          }
        },
        "required": [
          "candidates",
          "city",
          "match",
          "state",
          "street",
          "zipcode"
        ]
      },
      "SmartyLocationResponse": {
        "type": "object",
        "properties": {
          "county_name": {
            "type": "string"
          },
          "address_1": {
            "type": "string"
          },
          "address_2": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "zip_code": {
            "type": "string"
          },
          "address_verification_response": {
            "$ref": "#/components/schemas/AddressVerificationResponse"
          }
        },
        "required": [
          "address_1",
          "address_2",
          "address_verification_response",
          "city",
          "county_name",
          "state",
          "zip_code"
        ]
      },
      "SoftPullOffer": {
        "type": "object",
        "description": "Applies help_text to serializer fields based on the inner `Schema` class.\nIntended to be used ONLY for schema generation (drf-spectacular).",
        "properties": {
          "offer_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "product_name": {
            "type": "string"
          },
          "product_type": {
            "type": "string"
          },
          "json_description": {},
          "short_description": {
            "type": "string"
          },
          "long_description": {
            "type": "string"
          },
          "legal_description": {
            "type": "string"
          }
        },
        "required": [
          "json_description",
          "legal_description",
          "long_description",
          "offer_uuid",
          "product_name",
          "product_type",
          "short_description"
        ]
      },
      "SourceDestination": {
        "type": "object",
        "properties": {
          "accountID": {
            "type": "string",
            "format": "uuid"
          },
          "paymentMethodID": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "accountID",
          "paymentMethodID"
        ]
      },
      "Sponsor": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "sponsor_type": {
            "$ref": "#/components/schemas/SponsorType"
          }
        },
        "required": [
          "name",
          "sponsor_type",
          "uid"
        ]
      },
      "SponsorConsumerAccountCLIRequest": {
        "type": "object",
        "properties": {
          "external_application_id": {
            "type": "string",
            "maxLength": 255
          },
          "request_user_id": {
            "type": "string",
            "maxLength": 255
          },
          "cli_amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,10}(?:\\.\\d{0,2})?$"
          }
        },
        "required": [
          "cli_amount",
          "external_application_id",
          "request_user_id"
        ]
      },
      "SponsorStanding": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "s_type": {
            "type": "string"
          },
          "has_merchant_portal_access": {
            "type": "boolean"
          }
        },
        "required": [
          "has_merchant_portal_access",
          "name",
          "uid"
        ]
      },
      "SponsorType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "StagedFundingConfiguration": {
        "type": "object",
        "properties": {
          "risk_tier": {
            "type": "string",
            "readOnly": true
          },
          "initial_charge": {
            "$ref": "#/components/schemas/InitialCharge"
          },
          "project_charge": {
            "$ref": "#/components/schemas/ProjectCharge"
          },
          "final_charge": {
            "$ref": "#/components/schemas/FinalCharge"
          }
        },
        "required": [
          "risk_tier"
        ]
      },
      "StatusReason": {
        "type": "object",
        "properties": {
          "application_status": {
            "type": "string"
          },
          "application_status_reason": {
            "type": "integer"
          },
          "application_status_reason_name": {
            "type": "string"
          }
        },
        "required": [
          "application_status"
        ]
      },
      "SubProgram": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "parent_program": {
            "$ref": "#/components/schemas/Program"
          },
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "begin_date": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "is_active": {
            "type": "boolean",
            "nullable": true
          },
          "subprogram_uuid": {
            "type": "string",
            "format": "uuid"
          },
          "abbreviation": {
            "type": "string",
            "maxLength": 5
          },
          "default_rate_sheet_template": {
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "abbreviation",
          "begin_date",
          "id",
          "name",
          "parent_program"
        ]
      },
      "TokenInformation": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "servicer": {
            "$ref": "#/components/schemas/Servicer"
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name",
          "servicer"
        ]
      },
      "TransactionStatus": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "TransactionStatusReason": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "status"
        ]
      },
      "TransactionType": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "description": {
            "type": "string"
          },
          "transaction_code": {
            "type": "integer",
            "maximum": 2147483647,
            "minimum": -2147483648
          },
          "credit_debit": {
            "type": "boolean"
          },
          "transaction_method": {
            "type": "integer"
          }
        },
        "required": [
          "credit_debit",
          "name",
          "transaction_code",
          "transaction_method"
        ]
      },
      "TransactionTypeNameID": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "TransferAmounts": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "format": "decimal",
            "pattern": "^-?\\d{0,7}(?:\\.\\d{0,2})?$"
          },
          "payment_option": {
            "$ref": "#/components/schemas/Default"
          }
        },
        "required": [
          "amount",
          "payment_option"
        ]
      },
      "TransferUpdated": {
        "type": "object",
        "properties": {
          "eventID": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "enum": [
              "transfer.updated",
              "transfer.created"
            ],
            "type": "string",
            "description": "* `transfer.updated` - transfer.updated\n* `transfer.created` - transfer.created",
            "x-spec-enum-id": "880a2f833309db12"
          },
          "data": {
            "$ref": "#/components/schemas/PartnerRefundRequest"
          },
          "createdOn": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "createdOn",
          "data",
          "eventID",
          "type"
        ]
      },
      "TwoFactorLogin": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "maxLength": 6
          }
        },
        "required": [
          "code"
        ]
      },
      "TwoFactorQrCode": {
        "type": "object",
        "properties": {
          "qr_code": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "qr_code"
        ]
      },
      "UnderwritingResponse": {
        "type": "object",
        "description": "Parses the `underwriting_engine_response` field from the merchant application model.",
        "properties": {
          "decision_used": {
            "type": "string",
            "readOnly": true
          },
          "score_summary": {
            "type": "string",
            "readOnly": true
          },
          "business_attributes": {
            "type": "string",
            "readOnly": true
          },
          "business_attribute_scoring": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "business_attribute_scoring",
          "business_attributes",
          "decision_used",
          "score_summary"
        ]
      },
      "UpdateApplicationStatusDetailResponse": {
        "type": "object",
        "properties": {
          "updated_count": {
            "type": "integer"
          },
          "updated_status_id": {
            "type": "integer"
          },
          "updated_status_detail_id": {
            "type": "integer"
          }
        },
        "required": [
          "updated_count"
        ]
      },
      "UserBasic": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          }
        },
        "required": [
          "first_name",
          "last_name"
        ]
      },
      "UserEmailPhoneNumber": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "phone_number": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "email",
          "first_name",
          "id",
          "last_name",
          "phone_number"
        ]
      },
      "UserForgetPassword": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "maxLength": 255
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          },
          "password_check": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          }
        },
        "required": [
          "password",
          "password_check",
          "token"
        ]
      },
      "UserForgetPasswordConfirm": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "format": "uuid"
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          },
          "password_check": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          }
        },
        "required": [
          "password",
          "password_check",
          "token"
        ]
      },
      "UserReadOnlyAddress": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "last_login": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AddressUser"
              }
            ],
            "readOnly": true
          }
        },
        "required": [
          "address",
          "email",
          "first_name",
          "id",
          "last_name"
        ]
      },
      "UserResetPassword": {
        "type": "object",
        "properties": {
          "old_password": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          },
          "password": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          },
          "password_check": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          }
        },
        "required": [
          "old_password",
          "password",
          "password_check"
        ]
      },
      "UserRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "maxLength": 150
          },
          "display_name": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "display_name",
          "id",
          "name"
        ]
      },
      "UserSession": {
        "type": "object",
        "properties": {
          "session_id": {
            "type": "string",
            "format": "uuid"
          },
          "last_refreshed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "logged_out_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "UserSetPassword": {
        "type": "object",
        "properties": {
          "password": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          },
          "password_check": {
            "type": "string",
            "writeOnly": true,
            "maxLength": 255
          }
        },
        "required": [
          "password",
          "password_check"
        ]
      },
      "UserViewSet": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "readOnly": true
          },
          "address_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "readOnly": true
          },
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          },
          "phonenumber_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            },
            "readOnly": true
          },
          "sensitive_set": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SensitiveRead"
            },
            "readOnly": true
          },
          "is_active": {
            "type": "boolean",
            "title": "Active",
            "description": "Designates whether this user should be treated as active. Unselect this instead of deleting accounts."
          },
          "is_deleted": {
            "type": "boolean"
          }
        },
        "required": [
          "address_set",
          "email",
          "first_name",
          "id",
          "last_name",
          "phonenumber_set",
          "sensitive_set"
        ]
      },
      "UserWithEmail": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "maxLength": 255
          },
          "middle_name": {
            "type": "string",
            "maxLength": 255
          },
          "last_name": {
            "type": "string",
            "maxLength": 255
          },
          "email": {
            "type": "string",
            "format": "email",
            "maxLength": 254
          }
        },
        "required": [
          "email",
          "first_name",
          "last_name"
        ]
      },
      "ValidateInviteToken": {
        "type": "object",
        "properties": {
          "token": {
            "type": "string",
            "format": "uuid"
          },
          "password": {
            "type": "string"
          }
        },
        "required": [
          "password",
          "token"
        ]
      },
      "ValidateJWTResponse": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "integer"
          }
        },
        "required": [
          "user_id"
        ]
      },
      "VerifiedEmailCode": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserEmailPhoneNumber"
          },
          "merchant": {
            "type": "string",
            "readOnly": true
          },
          "sponsor": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "merchant",
          "sponsor",
          "user"
        ]
      },
      "WidgetBranding": {
        "type": "object",
        "properties": {
          "sponsor_uid": {
            "type": "string",
            "nullable": true
          },
          "button_background_color": {
            "type": "string",
            "nullable": true,
            "maxLength": 128
          },
          "button_label": {
            "type": "string",
            "nullable": true,
            "maxLength": 128
          },
          "widget_url": {
            "type": "string",
            "format": "uri",
            "nullable": true,
            "maxLength": 200
          },
          "sponsor_image_url": {
            "type": "string",
            "readOnly": true
          },
          "widget_type": {
            "type": "string",
            "maxLength": 64
          },
          "brand": {
            "type": "string",
            "readOnly": true
          }
        },
        "required": [
          "brand",
          "sponsor_image_url",
          "sponsor_uid"
        ]
      },
      "WidgetBrandingInputData": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "format": "uuid"
          },
          "type": {
            "enum": [
              "sponsor",
              "merchant"
            ],
            "type": "string",
            "description": "* `sponsor` - sponsor\n* `merchant` - merchant",
            "x-spec-enum-id": "ada7f00da01b2ed2"
          }
        },
        "required": [
          "type",
          "uuid"
        ]
      }
    },
    "securitySchemes": {
      "Moov Webhook Signature": {
        "type": "apiKey",
        "in": "header",
        "name": "HTTP_X-Signature",
        "description": "Authentication via Moov Webhook Signature. Requires all headers:\n- `HTTP_X-Timestamp`\n- `HTTP_X-Nonce`\n- `HTTP_X-Webhook-Id`\n- `HTTP_X-Signature`"
      },
      "basicAuth": {
        "type": "http",
        "scheme": "basic"
      },
      "jwtAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Token-based authentication with required prefix \"JWT\""
      },
      "tokenAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "Token-based authentication with required prefix \"Token\""
      }
    }
  }
}