{
  "openapi": "3.0.3",
  "info": {
    "title": "Column API",
    "version": "1.4",
    "contact": {
      "name": "Column",
      "url": "https://column.com",
      "email": "support@column.com"
    }
  },
  "servers": [
    {
      "url": "https://api.column.com/"
    }
  ],
  "security": [
    {
      "BasicAuth": []
    }
  ],
  "paths": {
    "/account-numbers/{account_number_id}": {
      "get": {
        "description": "Gets a specific account number by its ID.",
        "operationId": "AccountNumber_GetAccountNumber",
        "parameters": [
          {
            "in": "path",
            "name": "account_number_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountNumber"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an account number",
        "tags": [
          "AccountNumber"
        ],
        "x-response-example": {
          "account_number": "256783259046169",
          "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
          "bic": "CLNOUS66",
          "check_issuing_positive_pay_required": true,
          "created_at": "2022-03-01T20:09:42Z",
          "description": "Travel Checking Account Number",
          "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
          "routing_number": "121145307"
        }
      },
      "patch": {
        "description": "Updates an account number by its ID.",
        "operationId": "AccountNumber_UpdateAccountNumber",
        "parameters": [
          {
            "in": "path",
            "name": "account_number_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccountNumberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountNumber"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update an account number",
        "tags": [
          "AccountNumber"
        ],
        "x-response-example": {
          "account_number": "256783259046169",
          "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
          "bic": "CLNOUS66",
          "check_issuing_positive_pay_required": false,
          "created_at": "2022-03-01T20:09:42Z",
          "description": "Account Number for Checkbook",
          "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
          "routing_number": "121145307"
        }
      }
    },
    "/ach-positive-pay-rules": {
      "post": {
        "description": "Creates an ACH positive pay rule on a bank account.",
        "operationId": "TransferACHPositivePayRules_CreateACHPositivePayRule",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateACHPositivePayRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHPositivePayRuleResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create an ACH positive pay rule",
        "tags": [
          "TransferACHPositivePayRules"
        ]
      }
    },
    "/ach-positive-pay-rules/{ach_positive_pay_rule_id}": {
      "delete": {
        "description": "Delete an ACH positive pay rule by its ID.",
        "operationId": "TransferACHPositivePayRules_DeleteACHPositivePayRule",
        "parameters": [
          {
            "in": "path",
            "name": "ach_positive_pay_rule_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete an ACH positive pay rule",
        "tags": [
          "TransferACHPositivePayRules"
        ]
      },
      "get": {
        "description": "Retrieve a single ACH positive pay rule by its ID.",
        "operationId": "TransferACHPositivePayRules_GetACHPositivePayRule",
        "parameters": [
          {
            "in": "path",
            "name": "ach_positive_pay_rule_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHPositivePayRuleResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an ACH positive pay rule",
        "tags": [
          "TransferACHPositivePayRules"
        ]
      }
    },
    "/bank-accounts": {
      "get": {
        "description": "List all bank accounts under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "BankAccount_ListBankAccounts",
        "parameters": [
          {
            "description": "Return results where the balance is greater than this value, in the smallest unit of `currency_code`. When `currency_code` is omitted, the value is interpreted with two decimal digits and applied across all currencies.",
            "in": "query",
            "name": "balance.gt",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return results where the balance is greater than or equal to this value, in the smallest unit of `currency_code`. When `currency_code` is omitted, the value is interpreted with two decimal digits and applied across all currencies.",
            "in": "query",
            "name": "balance.gte",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return results where the balance is less than this value, in the smallest unit of `currency_code`. When `currency_code` is omitted, the value is interpreted with two decimal digits and applied across all currencies.",
            "in": "query",
            "name": "balance.lt",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return results where the balance is less than or equal to this value, in the smallest unit of `currency_code`. When `currency_code` is omitted, the value is interpreted with two decimal digits and applied across all currencies.",
            "in": "query",
            "name": "balance.lte",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter bank accounts by their three-letter ISO 4217 currency code. When omitted, accounts in all currencies are returned; if `balance.*` filters are also set, their amounts are interpreted with two decimal digits and applied across all currencies, so pass `currency_code` for exact filtering on currencies with other decimal counts.",
            "in": "query",
            "name": "currency_code",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter bank accounts by description.",
            "in": "query",
            "name": "description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List all accounts that belong to the entity with the given `entity_id`.",
            "in": "query",
            "name": "entity_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List all accounts that are overdraftable.",
            "in": "query",
            "name": "is_overdraftable",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "List all bank accounts with the given `overdraft_reserve_account_id`.",
            "in": "query",
            "name": "overdraft_reserve_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Search query to match against bank accounts.",
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Field to sort results by.",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort direction. Can be `asc` or `desc`.",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter bank accounts by status. Can be `open`, `closed`, or `frozen`.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Bank account type. Can be `CHECKING`, `OVERDRAFT_RESERVE`, `PROGRAM_RESERVE`, or `NETWORK_SETTLEMENT_ACCOUNT`.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all bank accounts",
        "tags": [
          "BankAccount"
        ]
      },
      "post": {
        "description": "Creates a new bank account under an entity.",
        "operationId": "BankAccount_CreateBankAccount",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountWithDetails"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a new bank account",
        "tags": [
          "BankAccount"
        ]
      }
    },
    "/bank-accounts/{bank_account_id}": {
      "delete": {
        "description": "This deletes a bank account.",
        "operationId": "BankAccount_DeleteBankAccount",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete a bank account",
        "tags": [
          "BankAccount"
        ],
        "x-callouts": [
          {
            "body": "Bank Accounts can only be deleted when they have a $0 balance.",
            "title": "Removing accounts"
          }
        ]
      },
      "get": {
        "description": "Get a bank account by its ID.",
        "operationId": "BankAccount_GetBankAccount",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountWithDetails"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a bank account by ID",
        "tags": [
          "BankAccount"
        ]
      },
      "patch": {
        "description": "Updates a bank account by its ID.",
        "operationId": "BankAccount_UpdateBankAccount",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountWithDetails"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a bank account",
        "tags": [
          "BankAccount"
        ]
      }
    },
    "/bank-accounts/{bank_account_id}/account-numbers": {
      "get": {
        "description": "Lists all the account numbers that point to a specific bank account.",
        "operationId": "AccountNumber_ListAccountNumbers",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListAccountNumbersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all account numbers from a bank account",
        "tags": [
          "AccountNumber"
        ],
        "x-response-example": {
          "account_numbers": [
            {
              "account_number": "256783259046169",
              "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
              "bic": "CLNOUS66",
              "check_issuing_positive_pay_required": true,
              "created_at": "2022-03-01T20:09:42Z",
              "description": "Travel Checking Account Number",
              "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
              "routing_number": "121145307"
            }
          ],
          "has_more": false
        }
      },
      "post": {
        "description": "Creates a new account number that points to the associated bank account.",
        "operationId": "AccountNumber_CreateAccountNumber",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAccountNumberParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountNumber"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a new account number",
        "tags": [
          "AccountNumber"
        ],
        "x-request-example": {
          "check_issuing_positive_pay_required": true,
          "description": "Travel Checking Account Number"
        },
        "x-response-example": {
          "account_number": "256783259046169",
          "bank_account_id": "bacc_25nVQr05nZybpyEzw8j0wV6VRUh",
          "bic": "CLNOUS66",
          "check_issuing_positive_pay_required": true,
          "created_at": "2022-03-01T20:09:42Z",
          "description": "Travel Checking Account Number",
          "id": "acno_25nacNsLD8qLI1Vc6x67sxFU27c",
          "routing_number": "121145307"
        }
      }
    },
    "/bank-accounts/{bank_account_id}/ach-positive-pay-rules": {
      "get": {
        "description": "Gets all ACH positive pay rules on a bank account.",
        "operationId": "TransferACHPositivePayRules_ListACHPositivePayRulesByBankAccount",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListACHPositivePayRulesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List ACH positive pay rules",
        "tags": [
          "TransferACHPositivePayRules"
        ]
      }
    },
    "/bank-accounts/{bank_account_id}/history": {
      "get": {
        "description": "Get the summary history of a bank account. This endpoint returns a list of summaries, one summary per day, for a single bank account. Only summaries for the latest 366 days are available. You must set your platform reporting time zone in Platform Settings on Dashboard to use this endpoint ([read more]({{guides.reporting}})).",
        "operationId": "BankAccount_GetBankAccountHistory",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountSummaryHistory"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get bank account summary history",
        "tags": [
          "BankAccount"
        ]
      }
    },
    "/bank-accounts/{bank_account_id}/owner": {
      "post": {
        "description": "Adds an additional owner to an existing bank account. This enables joint ownership where multiple entities can have ownership rights. The entity must be verified before being added as an owner and must belong to the same platform as the bank account.",
        "operationId": "BankAccount_AddBankAccountOwner",
        "parameters": [
          {
            "in": "path",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddBankAccountOwnerRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BankAccountWithDetails"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Add a bank account owner",
        "tags": [
          "BankAccount"
        ]
      }
    },
    "/counterparties": {
      "get": {
        "description": "Retrieve all counterparties under your developer account. Filtered results can be retrieved with extra parameters in the query (`account_number`, `routing_number`, etc.).",
        "operationId": "Counterparty_ListCounterparties",
        "parameters": [
          {
            "description": "Filter counterparties by account number.",
            "in": "query",
            "name": "account_number",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "When `true`, collapses duplicate counterparties (same account/routing) into a single result.",
            "in": "query",
            "name": "deduplicate",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Filter counterparties by description (substring match).",
            "in": "query",
            "name": "description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Free-form search query that matches against counterparty fields.",
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter counterparties by routing number.",
            "in": "query",
            "name": "routing_number",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Field to sort results by.",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort direction. Can be `asc` or `desc`.",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCounterpartiesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all counterparties",
        "tags": [
          "Counterparty"
        ]
      },
      "post": {
        "description": "A counterparty is the legal entity on the other side of the transaction. Depending on the type of transaction, we may need to know more or less about them. A domestic ACH only requires a counterparty's account and routing number. If you include a counterparty name, Column will by default populate `receiver_name` on the ACH transfer request. Domestic and international wires require full name and address. Certain countries may require additional fields. Learn more about country-specific details here.",
        "operationId": "Counterparty_CreateCounterparty",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Counterparty"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a counterparty",
        "tags": [
          "Counterparty"
        ]
      }
    },
    "/counterparties/{counterparty_id}": {
      "delete": {
        "description": "Delete a counterparty.",
        "operationId": "Counterparty_DeleteCounterparty",
        "parameters": [
          {
            "in": "path",
            "name": "counterparty_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete a counterparty",
        "tags": [
          "Counterparty"
        ]
      },
      "get": {
        "description": "Retrieve a single counterparty by its ID.",
        "operationId": "Counterparty_GetCounterparty",
        "parameters": [
          {
            "in": "path",
            "name": "counterparty_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Counterparty"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a counterparty by ID",
        "tags": [
          "Counterparty"
        ]
      }
    },
    "/documents": {
      "get": {
        "description": "List all documents under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "Documents_ListDocuments",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter documents by description.",
            "in": "query",
            "name": "description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter documents by file name.",
            "in": "query",
            "name": "file_name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter documents by tag.",
            "in": "query",
            "name": "tag",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter documents by type.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DocumentList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all documents",
        "tags": [
          "Documents"
        ]
      },
      "post": {
        "description": "To upload a file to Column, you will need to send a request with `Content-Type: multipart/form-data`. The request should contain the file you would like to upload, as well as other metadata. The `type` field cannot be `card_dispute_evidence`: card dispute evidence documents are uploaded via `POST /issuing/card-disputes/documents`.",
        "operationId": "Documents_UploadRegularDocument",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Upload a document",
        "tags": [
          "Documents"
        ]
      }
    },
    "/documents/{document_id}": {
      "get": {
        "description": "Retrieves the details of an existing document.",
        "operationId": "Documents_GetDocument",
        "parameters": [
          {
            "in": "path",
            "name": "document_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a document",
        "tags": [
          "Documents"
        ]
      }
    },
    "/entities": {
      "get": {
        "description": "Retrieve all entities on your platform. Filtered results can be retrieved with extra parameters in the query (`type`, `name`, etc.).",
        "operationId": "IdentityEntity_GetEntities",
        "parameters": [
          {
            "description": "Return results where the created time is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the created time is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the created time is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the created time is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results matching the specified root status.",
            "in": "query",
            "name": "is_root",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Return entities with this name.",
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Free-text search query to match against entity fields.",
            "in": "query",
            "name": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results with this entity type, either `PERSON` or `BUSINESS`.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results with this verification status.",
            "in": "query",
            "name": "verification_status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEntitiesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all entities",
        "tags": [
          "IdentityEntity"
        ],
        "x-response-example": {
          "entities": [
            {
              "documents": [],
              "id": "enti_2NkTtT5NI3Lh0LpjpvxO4M2AZHd",
              "is_root": false,
              "name": "Oliver Smith",
              "requires_screening": false,
              "review_reasons": [],
              "type": "PERSON",
              "verification_status": "VERIFIED"
            },
            {
              "documents": [],
              "id": "enti_2MCE4Cgh2Sl5ttZfnXYwzmfik0c",
              "is_root": false,
              "name": "Yellen Cocktails LLC",
              "requires_screening": false,
              "review_reasons": [],
              "type": "BUSINESS",
              "verification_status": "VERIFIED"
            }
          ],
          "has_more": false
        }
      }
    },
    "/entities/{entity_id}": {
      "delete": {
        "description": "Delete the underlying entity.",
        "operationId": "IdentityEntity_DeleteEntity",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete an entity",
        "tags": [
          "IdentityEntity"
        ],
        "x-callouts": [
          {
            "body": "Entities can only be deleted if all their underlying accounts are deleted. Accounts can only be deleted when they have a $0 balance.",
            "title": "Removing entities"
          }
        ]
      },
      "get": {
        "description": "Retrieve a single legal entity by its ID.",
        "operationId": "IdentityEntity_GetEntity",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an entity by ID",
        "tags": [
          "IdentityEntity"
        ],
        "x-response-example": {
          "business_details": {
            "address": {
              "city": "San Francisco",
              "country_code": "US",
              "line_1": "555 California Street",
              "line_2": "Suite 200",
              "postal_code": "94104",
              "state": "CA"
            },
            "business_name": "Yellen Cocktails LLC",
            "countries_of_operation": [
              "US"
            ],
            "description": "Premium craft cocktail lounge and distillery",
            "ein": "123456789",
            "industry": "Food & Beverage",
            "legal_type": "llc",
            "state_of_incorporation": "CA",
            "website": "https://yellencocktails.com",
            "year_of_incorporation": "2019"
          },
          "documents": [],
          "id": "enti_2Q1fIwKjnf7TmZP37mAuKjWXB2o",
          "is_root": false,
          "name": "Yellen Cocktails LLC",
          "requires_screening": false,
          "review_reasons": [],
          "type": "BUSINESS",
          "verification_status": "VERIFIED"
        }
      }
    },
    "/entities/{entity_id}/additional-requirements": {
      "get": {
        "description": "Retrieve submitted additional requirements for an entity.",
        "operationId": "IdentityEntity_GetAdditionalRequirements",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAdditionalRequirementsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get additional requirements",
        "tags": [
          "IdentityEntity"
        ]
      },
      "post": {
        "description": "Submit additional requirements that may be configured as part of your compliance program at Column.",
        "operationId": "IdentityEntity_SubmitAdditionalRequirements",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntityAdditionalRequirementsJSON"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubmitAdditionalRequirementsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Submit additional requirements",
        "tags": [
          "IdentityEntity"
        ],
        "x-callouts": [
          {
            "body": "The schema for additional requirements is configured per platform. The fields shown below are examples only and will vary based on your specific compliance program. Contact your Column solutions engineer to understand which fields are required for your platform.",
            "title": "Custom Schema"
          },
          {
            "body": "All custom fields are validated according to your platform's compliance configuration. Invalid data will result in a 400 error with field-specific error messages.",
            "title": "Validation",
            "variant": "warning"
          }
        ]
      }
    },
    "/entities/{entity_id}/associated-persons": {
      "get": {
        "description": "List the associated persons for a business entity. Results are paginated newest-first; use `limit` (default 10, max 100) with the `starting_after` / `ending_before` person entity ID cursors to page through businesses with many associated persons.",
        "operationId": "IdentityEntity_GetAssociatedPersons",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is the `person_entity_id` of an associated person that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `enti_ZXhhbXBsZQo`, your subsequent call can include `ending_before=enti_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is the `person_entity_id` of an associated person that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `enti_ZXhhbXBsZQo`, your subsequent call can include `starting_after=enti_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAssociatedPersonsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List associated persons",
        "tags": [
          "IdentityEntity"
        ],
        "x-response-example": {
          "associated_persons": [
            {
              "person_details": {
                "date_of_birth": "1985-04-12",
                "email": "oliver@column.com",
                "first_name": "Oliver",
                "last_name": "Hockey",
                "middle_name": "",
                "passport": {},
                "ssn": "123456789"
              },
              "person_entity_id": "enti_2Q1ctiJm1NypVqCt8UBC8e4xTfH",
              "roles": [
                "control_person",
                "beneficial_owner"
              ],
              "title_in_business": "CEO and Founder"
            }
          ],
          "has_more": false,
          "id": "enti_2dk2oXqPcB5Xb5wFpnrg50F7BeD"
        }
      },
      "post": {
        "description": "Link a person entity as an associated person to a business entity.",
        "operationId": "IdentityEntity_LinkAssociatedPerson",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LinkAssociatedPersonRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssociatedPerson"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Link an associated person",
        "tags": [
          "IdentityEntity"
        ]
      },
      "put": {
        "description": "Update the associated persons for a business entity.",
        "operationId": "IdentityEntity_UpdateAssociatedPersons",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAssociatedPersonsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAssociatedPersonsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update associated persons",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/entities/{entity_id}/compliance": {
      "get": {
        "description": "Retrieve a list of fields that are not yet populated on an entity based on the compliance requirements for your program. Column will work with you to define required fields given your specific use case.",
        "operationId": "IdentityEntity_GetEntityCompliance",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityCompliance"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get entity compliance",
        "tags": [
          "IdentityEntity"
        ],
        "x-callouts": [
          {
            "body": "- `complete`: Field has been provided and validated\n- `missing`: Field is required but not provided\n- `invalid`: Field provided but failed validation\n- `pending`: Field is being verified",
            "title": "Field Status Values"
          }
        ],
        "x-response-example": {
          "entity_id": "enti_2dk2oXqPcB5Xb5wFpnrg50F7BeD",
          "fields": {
            "address.city": "complete",
            "address.line_1": "complete",
            "evidence.proof_of_address": "missing",
            "first_name": "complete",
            "last_name": "complete",
            "ssn": "missing"
          },
          "updated_at": "2024-01-15T10:30:00Z"
        }
      }
    },
    "/entities/{entity_id}/evidence": {
      "get": {
        "description": "Retrieve evidence for an entity with optional filtering.",
        "operationId": "IdentityEntity_GetEntityEvidence",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by the type of evidence submitted.",
            "in": "query",
            "name": "evidence_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by the purpose of the evidence submission.",
            "in": "query",
            "name": "purpose",
            "required": false,
            "schema": {
              "enum": [
                "proof_of_address",
                "business_formation",
                "identity_verification",
                "tax_id_confirmation",
                "active_status_certificate",
                "signed_account_agreement",
                "cardholder_agreement",
                "attestation_control_person",
                "attestation_beneficial_ownership",
                "attestation_account_info_truth",
                "attestation_terms_of_service",
                "ofac_screening",
                "adverse_media_screening",
                "pep_screening",
                "complete_customer_file",
                "irs_form_ss4",
                "irs_form_990",
                "nonprofit_other_evidence",
                "edd",
                "attestation_privacy_policy"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEntityEvidenceResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get entity evidence",
        "tags": [
          "IdentityEntity"
        ]
      },
      "post": {
        "description": "Add evidence to an entity. Supports file, signature, and third-party JSON evidence — if your KYC provider sends you a JSON blob, pass it directly in `data` with `third_party_json` as the `evidence_type`. A single submission can cover several purposes at once: Column creates one evidence record per entry in `purposes`, all referencing the same underlying document or data.",
        "operationId": "IdentityEntity_CreateEntityEvidence",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEntityEvidenceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateEntityEvidenceResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create entity evidence",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/entities/{entity_id}/narratives": {
      "get": {
        "description": "Retrieve the narratives for an entity, newest first. Deleted narratives are excluded.",
        "operationId": "IdentityEntity_GetEntityNarratives",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEntityNarrativesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List entity narratives",
        "tags": [
          "IdentityEntity"
        ]
      },
      "post": {
        "description": "Append a free-form note to an entity's customer file, such as the context a reviewer records while collecting CIP/CDD documentation. Narratives are append-only: they cannot be edited after creation, only deleted as individual records.",
        "operationId": "IdentityEntity_CreateEntityNarrative",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEntityNarrativeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityNarrative"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create an entity narrative",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/entities/{entity_id}/narratives/{entity_narrative_id}": {
      "delete": {
        "description": "Remove a single narrative from an entity's customer file.",
        "operationId": "IdentityEntity_DeleteEntityNarrative",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "entity_narrative_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete an entity narrative",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/entities/business": {
      "post": {
        "description": "Create a new business entity.",
        "operationId": "IdentityEntity_CreateBusinessEntity",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBusinessEntity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a business entity",
        "tags": [
          "IdentityEntity"
        ],
        "x-callouts": [
          {
            "body": "After creating a business entity, use the [Associated Persons endpoints]({{entity.associated}}) to add beneficial owners and control persons. This endpoint creates only the core business entity.",
            "title": "Managing Associated Persons"
          }
        ]
      }
    },
    "/entities/business/{entity_id}": {
      "patch": {
        "description": "Update an existing business entity.",
        "operationId": "IdentityEntity_UpdateBusinessEntity",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBusinessEntity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a business entity",
        "tags": [
          "IdentityEntity"
        ],
        "x-callouts": [
          {
            "body": "Beneficial owners and control persons are now managed through the [Associated Persons endpoints]({{entity.associated}}). This endpoint updates only the core business details.",
            "title": "Managing Associated Persons"
          }
        ]
      }
    },
    "/entities/person": {
      "post": {
        "description": "Create a new person entity for individual customers.",
        "operationId": "IdentityEntity_CreatePersonEntity",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePersonEntity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a person entity",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/entities/person/{entity_id}": {
      "patch": {
        "description": "Update an existing person entity.",
        "operationId": "IdentityEntity_UpdatePersonEntity",
        "parameters": [
          {
            "in": "path",
            "name": "entity_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePersonEntity"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Entity"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a person entity",
        "tags": [
          "IdentityEntity"
        ]
      }
    },
    "/events": {
      "get": {
        "description": "Lists all events, inclusive of events sent via webhooks.",
        "operationId": "Event_ListEvents",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter events by related object IDs.",
            "in": "query",
            "name": "object_ids",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter events by type.",
            "in": "query",
            "name": "types",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEventsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all events",
        "tags": [
          "Event"
        ]
      }
    },
    "/events/{event_id}": {
      "get": {
        "description": "Retrieve a single event by its ID.",
        "operationId": "Event_GetEvent",
        "parameters": [
          {
            "in": "path",
            "name": "event_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Event"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an event",
        "tags": [
          "Event"
        ]
      }
    },
    "/events/webhook": {
      "get": {
        "description": "Lists just the events that resulted in webhooks. Useful for reconciling webhooks.",
        "operationId": "Event_ListWebhookEvents",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter events by related object IDs.",
            "in": "query",
            "name": "object_ids",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter events by type.",
            "in": "query",
            "name": "types",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEventsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all webhook events",
        "tags": [
          "Event"
        ]
      }
    },
    "/iban/{iban}": {
      "get": {
        "description": "Validate the format of an IBAN and check whether it is registered with the given financial institution. However, we cannot verify if the account is still open.",
        "operationId": "FinancialInstitution_GetIBAN",
        "parameters": [
          {
            "in": "path",
            "name": "iban",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IBAN"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Validate an IBAN",
        "tags": [
          "FinancialInstitution"
        ]
      }
    },
    "/institutions": {
      "get": {
        "description": "List all financial institutions. Filtered results can be retrieved with extra parameters in your queries.",
        "operationId": "FinancialInstitution_ListFinancialInstitutions",
        "parameters": [
          {
            "description": "Filter institutions by country code.",
            "in": "query",
            "name": "country_code",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter institutions by name.",
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter institutions by routing number type.",
            "in": "query",
            "name": "routing_number_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListFinancialInstitution"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List financial institutions",
        "tags": [
          "FinancialInstitution"
        ]
      }
    },
    "/institutions/{routing_number}": {
      "get": {
        "description": "Retrieve a single financial institution by its ABA number or BIC.",
        "operationId": "FinancialInstitution_GetFinancialInstitution",
        "parameters": [
          {
            "in": "path",
            "name": "routing_number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FinancialInstitution"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a financial institution",
        "tags": [
          "FinancialInstitution"
        ]
      }
    },
    "/loans": {
      "get": {
        "description": "List all loans under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "LendingLoan_ListLoans",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter loans by entity ID.",
            "in": "query",
            "name": "entity_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter loans by loan program ID.",
            "in": "query",
            "name": "loan_program_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter loans by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter loans by type.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "enum": [
                "unsecured",
                "secured"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLoans"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all loans",
        "tags": [
          "LendingLoan"
        ]
      },
      "post": {
        "description": "Creates a new loan under an entity.",
        "operationId": "LendingLoan_CreateLoan",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Loan"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a new loan",
        "tags": [
          "LendingLoan"
        ]
      }
    },
    "/loans/{loan_id}": {
      "get": {
        "description": "Retrieve a single loan by its ID.",
        "operationId": "LendingLoan_GetLoan",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Loan"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a loan by ID",
        "tags": [
          "LendingLoan"
        ]
      },
      "patch": {
        "description": "Updates a loan by its ID.",
        "operationId": "LendingLoan_UpdateLoan",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Loan"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a loan",
        "tags": [
          "LendingLoan"
        ]
      }
    },
    "/loans/{loan_id}/apply_collateral": {
      "post": {
        "description": "Apply locked collateral to the principal balance of a secured loan.",
        "operationId": "LendingPayments_ApplyLoanCollateral",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplyLoanCollateralRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanPayment"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Apply collateral",
        "tags": [
          "LendingPayments"
        ],
        "x-response-example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1000,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "collection_account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "collection_bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "created_at": "2025-08-03T16:05:12Z",
          "currency": "USD",
          "description": "Apply collateral",
          "effective_at": "2025-08-03T16:05:12Z",
          "id": "lpmt_30mdxZgaXqKELJ5xRVKKj2x3Vrz",
          "idempotency_key": "collateral-payment-1",
          "ignore_retained_balances": false,
          "interest_amount": 0,
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "principal_amount": 1000,
          "retained_interest_amount": 0,
          "retained_principal_amount": 0,
          "status": "completed"
        }
      }
    },
    "/loans/{loan_id}/history": {
      "get": {
        "description": "Retrieve daily summary history for a specific loan. [Read more]({{lending.report}}).",
        "operationId": "LendingLoan_GetLoanHistory",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanSummaryHistory"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get loan summary history",
        "tags": [
          "LendingLoan"
        ]
      }
    },
    "/loans/{loan_id}/sales": {
      "post": {
        "description": "Creates a loan sale for a specific loan.",
        "operationId": "LendingSale_CreateSale",
        "parameters": [
          {
            "in": "path",
            "name": "loan_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoanSaleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanSale"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a loan sale",
        "tags": [
          "LendingSale"
        ]
      }
    },
    "/loans/disbursements": {
      "get": {
        "description": "List all disbursements under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "LendingDisbursements_ListDisbursements",
        "parameters": [
          {
            "description": "Filter disbursements by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter disbursements by loan ID.",
            "in": "query",
            "name": "loan_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLoanDisbursements"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all disbursements",
        "tags": [
          "LendingDisbursements"
        ]
      },
      "post": {
        "description": "Creates a disbursement for a loan. [Read more]({{lending.report}}).",
        "operationId": "LendingDisbursements_CreateDisbursement",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDisbursementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanDisbursement"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a disbursement",
        "tags": [
          "LendingDisbursements"
        ]
      }
    },
    "/loans/disbursements/{loan_disbursement_id}": {
      "get": {
        "description": "Retrieve a single disbursement by its ID.",
        "operationId": "LendingDisbursements_GetDisbursement",
        "parameters": [
          {
            "in": "path",
            "name": "loan_disbursement_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanDisbursement"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a disbursement",
        "tags": [
          "LendingDisbursements"
        ]
      },
      "patch": {
        "description": "Update a disbursement hold for a loan.",
        "operationId": "LendingDisbursements_UpdateDisbursementHold",
        "parameters": [
          {
            "in": "path",
            "name": "loan_disbursement_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/updateDisbursementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanDisbursement"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a disbursement hold",
        "tags": [
          "LendingDisbursements"
        ],
        "x-response-example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1500,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "created_at": "2025-08-03T16:04:09Z",
          "currency": "USD",
          "description": "first disbursement",
          "effective_at": null,
          "id": "ldsb_30meChPQuHfd7jqNuUWlkqS6B9o",
          "idempotency_key": "",
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "status": "hold"
        }
      }
    },
    "/loans/disbursements/{loan_disbursement_id}/cancel": {
      "post": {
        "description": "Cancel a disbursement hold for a loan.",
        "operationId": "LendingDisbursements_CancelDisbursementHold",
        "parameters": [
          {
            "in": "path",
            "name": "loan_disbursement_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanDisbursement"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a disbursement hold",
        "tags": [
          "LendingDisbursements"
        ],
        "x-response-example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1500,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "created_at": "2025-08-03T16:04:09Z",
          "currency": "USD",
          "description": "first disbursement",
          "effective_at": null,
          "id": "ldsb_30meChPQuHfd7jqNuUWlkqS6B9o",
          "idempotency_key": "",
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "status": "canceled"
        }
      }
    },
    "/loans/disbursements/{loan_disbursement_id}/clear": {
      "post": {
        "description": "Clear a disbursement hold for a loan.",
        "operationId": "LendingDisbursements_ClearDisbursementHold",
        "parameters": [
          {
            "in": "path",
            "name": "loan_disbursement_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clearDisbursementRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanDisbursement"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a disbursement hold",
        "tags": [
          "LendingDisbursements"
        ],
        "x-response-example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1500,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "created_at": "2025-08-03T16:04:09Z",
          "currency": "USD",
          "description": "first disbursement",
          "effective_at": "2025-08-03T16:04:09Z",
          "id": "ldsb_30meChPQuHfd7jqNuUWlkqS6B9o",
          "idempotency_key": "",
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "status": "completed"
        }
      }
    },
    "/loans/payments": {
      "get": {
        "description": "List all payments under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "LendingPayments_ListLoanPayments",
        "parameters": [
          {
            "description": "Filter loan payments by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter loan payments by loan ID.",
            "in": "query",
            "name": "loan_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLoanPayment"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all payments",
        "tags": [
          "LendingPayments"
        ]
      },
      "post": {
        "description": "Creates a payment for a loan. [Read more]({{lending.report}}).",
        "operationId": "LendingPayments_CreateLoanPayment",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoanPaymentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanPayment"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a payment",
        "tags": [
          "LendingPayments"
        ]
      }
    },
    "/loans/payments/{loan_payment_id}": {
      "get": {
        "description": "Retrieve a single loan payment by its ID.",
        "operationId": "LendingPayments_GetLoanPayment",
        "parameters": [
          {
            "in": "path",
            "name": "loan_payment_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanPayment"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a payment",
        "tags": [
          "LendingPayments"
        ]
      }
    },
    "/loans/payments/{loan_payment_id}/return": {
      "post": {
        "description": "Return a loan payment by its ID.",
        "operationId": "LendingPayments_ReturnLoanPayment",
        "parameters": [
          {
            "in": "path",
            "name": "loan_payment_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanPayment"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Return a payment",
        "tags": [
          "LendingPayments"
        ],
        "x-response-example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1000,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "collection_account_number_id": "",
          "collection_bank_account_id": "",
          "created_at": "2025-08-03T16:05:12Z",
          "currency": "USD",
          "description": "first payment",
          "effective_at": "2025-08-03T16:05:12Z",
          "id": "lpmt_30mdxZgaXqKELJ5xRVKKj2x3Vrz",
          "idempotency_key": "",
          "ignore_retained_balances": false,
          "interest_amount": 200,
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "principal_amount": 800,
          "retained_interest_amount": 0,
          "retained_principal_amount": 0,
          "status": "returned"
        }
      }
    },
    "/loans/programs": {
      "get": {
        "description": "List all loan programs for your platform. No query parameters are available - all loan programs for your platform will be returned.",
        "operationId": "LendingLoan_ListLoanPrograms",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLoanProgramsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List loan programs",
        "tags": [
          "LendingLoan"
        ]
      }
    },
    "/loans/programs/{loan_program_id}": {
      "get": {
        "description": "Retrieve a single loan program by its ID.",
        "operationId": "LendingLoan_GetLoanProgram",
        "parameters": [
          {
            "in": "path",
            "name": "loan_program_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanProgram"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a loan program",
        "tags": [
          "LendingLoan"
        ]
      },
      "patch": {
        "description": "It's unlikely that you will need to update a loan program. Please work with your Column team / Solution Engineer to update a loan program.",
        "operationId": "LendingLoan_UpdateLoanProgram",
        "parameters": [
          {
            "in": "path",
            "name": "loan_program_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoanProgramRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanProgram"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update loan program",
        "tags": [
          "LendingLoan"
        ]
      }
    },
    "/loans/sales": {
      "get": {
        "description": "List loan sales under your platform.",
        "operationId": "LendingSale_ListSales",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter loan sales by loan ID.",
            "in": "query",
            "name": "loan_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLoanSalesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all loan sales",
        "tags": [
          "LendingSale"
        ]
      }
    },
    "/loans/sales/{loan_sale_id}": {
      "get": {
        "description": "Retrieve a single loan sale by its ID.",
        "operationId": "LendingSale_GetSale",
        "parameters": [
          {
            "in": "path",
            "name": "loan_sale_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanSale"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a loan sale",
        "tags": [
          "LendingSale"
        ]
      }
    },
    "/loans/sales/summaries/available": {
      "get": {
        "description": "Get loan sale summaries for loans available for sale. Data returned by this API are updated daily after `loan_daily_summary` reports are generated. [Read more]({{lending.report}}).",
        "operationId": "LendingSale_GetDailyLoansAvailableForSale",
        "parameters": [
          {
            "description": "Effective date of the loan daily summary report. Format: `YYYY-MM-DD`. If not specified, loan sale summaries from the latest `loan_daily_summary` report will be returned.",
            "in": "query",
            "name": "date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to be expanded. Format: `expand=field_1&expand=field_2`. Available values: `loans` (return list of loan sale details).",
            "in": "query",
            "name": "expand",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "Filter loan sale summaries by loan program ID.",
            "in": "query",
            "name": "loan_program_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanSaleSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get loan sale summaries for loans available for sale",
        "tags": [
          "LendingSale"
        ]
      }
    },
    "/loans/sales/summaries/sold": {
      "get": {
        "description": "Get loan sale summaries for loans already sold. Data returned by this API are updated daily after `loan_daily_summary` reports are generated. [Read more]({{lending.report}}).",
        "operationId": "LendingSale_GetDailySoldLoans",
        "parameters": [
          {
            "description": "Effective date of the loan daily summary report. Format: `YYYY-MM-DD`. If not specified, loan sale summaries from the latest `loan_daily_summary` report will be returned.",
            "in": "query",
            "name": "date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "List of fields to be expanded. Format: `expand=field_1&expand=field_2`. Available values: `loans` (return list of loan sale details).",
            "in": "query",
            "name": "expand",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            }
          },
          {
            "description": "Filter loan sale summaries by loan program ID.",
            "in": "query",
            "name": "loan_program_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoanSaleSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get loan sale summaries for loans already sold",
        "tags": [
          "LendingSale"
        ]
      }
    },
    "/reporting": {
      "get": {
        "description": "List all available settlement reports under the platform. Filtered results can be retrieved with extra parameters in the query.",
        "operationId": "Reporting_ListSettlementReports",
        "parameters": [
          {
            "description": "Filter settlement reports by category.",
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter settlement reports from this date.",
            "in": "query",
            "name": "from_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter settlement reports by statement subject ID.",
            "in": "query",
            "name": "statement_subject_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter settlement reports to this date.",
            "in": "query",
            "name": "to_date",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter settlement reports by type.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "items": {
                "enum": [
                  "bank_account_summary",
                  "bank_account_transaction",
                  "bank_account_monthly_statement",
                  "bank_account_daily_statement",
                  "bank_account_interest",
                  "loan_daily_summary"
                ],
                "type": "string"
              },
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSettlementReportsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all settlement reports",
        "tags": [
          "Reporting"
        ]
      },
      "post": {
        "operationId": "Reporting_ScheduleSettlementReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettlementReportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettlementReport"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Schedule a settlement report",
        "tags": [
          "Reporting"
        ]
      }
    },
    "/reporting/{settlement_report_id}": {
      "get": {
        "description": "Get a settlement report by its ID. Please refer to our [Reporting Guides]({{guides.reporting}}) for more details.",
        "operationId": "Reporting_GetSettlementReport",
        "parameters": [
          {
            "in": "path",
            "name": "settlement_report_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettlementReport"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a settlement report by ID",
        "tags": [
          "Reporting"
        ]
      }
    },
    "/reporting/customized-bank-account-statement": {
      "get": {
        "description": "Generate a customized bank account statement for a specific bank account and date range. The response is a CSV file download.",
        "operationId": "BankAccount_ExportBankAccountActivities",
        "parameters": [
          {
            "description": "The ID of the bank account to generate the statement for.",
            "in": "query",
            "name": "bank_account_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Start date for the statement period, in `YYYY-MM-DD` format.",
            "in": "query",
            "name": "from_date",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "End date for the statement period, in `YYYY-MM-DD` format.",
            "in": "query",
            "name": "to_date",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The format of the statement. Currently only `csv` is supported.",
            "in": "query",
            "name": "type",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a customized bank account statement",
        "tags": [
          "BankAccount"
        ]
      }
    },
    "/simulate/deposit-issued-check": {
      "post": {
        "description": "Simulates the deposit of an issued check. This API is always enabled, and is not affected by the operating hours of the sandbox Fed Check21 system.",
        "operationId": "TransferChecks_DepositIssuedCheck",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateDepositIssuedCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Deposit an issued check",
        "tags": [
          "TransferChecks"
        ]
      }
    },
    "/simulate/receive-ach-credit": {
      "post": {
        "description": "Simulates an incoming ACH Credit transfer to an account for the amount specified. To more accurately represent a production environment, we process incoming ACH transfers every hour. You will not see the effects of an incoming ACH transfer until the ACH is processed.",
        "operationId": "TransferACH_ReceiveACHCreditTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveACHTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive an ACH Credit",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/simulate/receive-ach-debit": {
      "post": {
        "description": "Simulates an incoming ACH Debit transfer from an account for the amount specified. To more accurately represent a production environment, we process incoming ACH transfers every hour. You will not see the effects of an incoming ACH transfer until the ACH is processed.",
        "operationId": "TransferACH_ReceiveACHDebitTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveACHTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive an ACH Debit",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/simulate/receive-international-wire": {
      "post": {
        "description": "Simulates an incoming international wire transfer to an account for the amount specified.",
        "operationId": "TransferWire_ReceiveInternationalWire",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveWireRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive an international wire",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/simulate/receive-wire": {
      "post": {
        "description": "Simulates an incoming wire transfer to an account for the amount specified. We recommend using this API to set a balance on your account in the sandbox environment. This API is always enabled, and is not affected by the operating hours of the sandbox Fedwire system.",
        "operationId": "TransferWire_ReceiveWireTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveWireRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive a wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/simulate/receive-wire-drawdown-request": {
      "post": {
        "description": "Simulates an incoming wire drawdown request into the specified account number ID.",
        "operationId": "TransferWire_ReceiveWireDrawdownRequest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveWireDrawdownRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive a wire drawdown request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/simulate/receive-wire-return-request": {
      "post": {
        "description": "Simulates an incoming wire return request for a simulated incoming wire transfer.",
        "operationId": "TransferWire_ReceiveWireReturnRequest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateReceiveWireReturnRequestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive a wire return request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/simulate/tax-forms": {
      "post": {
        "description": "Simulates the creation of a tax form for an entity. This allows you to test the tax form workflow including filing statuses, mailing, and webhook events. The normal `7` calendar days grace period for filing will be ignored in simulations.",
        "operationId": "TaxForms_CreateTaxForm",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateCreateTaxFormRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaxForm"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a tax form",
        "tags": [
          "TaxForms"
        ]
      }
    },
    "/simulate/transfers/ach/settle": {
      "post": {
        "description": "Forces the settlement of an outgoing ACH transfer, regardless of the operating hours of the Sandbox Fed.",
        "operationId": "TransferACH_SettleACHTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateSettleACHTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptyResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Settle ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/simulate/transfers/checks/settle": {
      "post": {
        "description": "Forces the settlement of a deposited check. After a check is deposited in sandbox, it is going to move from a `pending_deposit` state to a `deposited` state within an hour to simulate check forwarding to the Fed. This endpoint allows you to force settlement after the check is transitioned to a `deposited` state. This will transition the transfer to `settled` and make funds available immediately.",
        "operationId": "TransferChecks_SettleCheckTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateSettleCheckTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Settle check deposit",
        "tags": [
          "TransferChecks"
        ]
      }
    },
    "/simulate/transfers/realtime/receive-credit": {
      "post": {
        "description": "Simulates an incoming realtime transfer to an account for the amount specified.",
        "operationId": "TransferRealtime_ReceiveCredit",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateRealtimeReceiveCreditRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateRealtimeReceiveCreditResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive a realtime transfer",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/simulate/transfers/realtime/receive-rfp": {
      "post": {
        "description": "Simulates an incoming Realtime RFP to an account for the amount specified.",
        "operationId": "TransferRealtime_ReceiveRFP",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateRealtimeReceiveRFPRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateRealtimeReceiveRFPResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Receive a realtime RFP (Request for Payment)",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/simulate/transfers/wire/settle": {
      "post": {
        "description": "Forces the submission and settlement of an outgoing Wire transfer, regardless of the operating hours of the Sandbox Fed. The wire message should move from `PENDING_SUBMISSION` to `COMPLETED` after this API call.",
        "operationId": "TransferWire_SettleWireTransfer",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateSettleWireTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Settle wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers": {
      "get": {
        "description": "List all transfers across all transfer types under your platform.",
        "operationId": "Transfer_SearchTransfers",
        "parameters": [
          {
            "description": "Filter by account number",
            "in": "query",
            "name": "account_number",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by account number ID (matches either sender or receiver)",
            "in": "query",
            "name": "account_number_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by ACH transfer type",
            "in": "query",
            "name": "ach_type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by exact amount in centi units (hundredths of a major currency unit), regardless of currency",
            "in": "query",
            "name": "amount",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Filter by amount greater than this centi-unit value, regardless of currency",
            "in": "query",
            "name": "amount_gt",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Filter by amount greater than or equal to this centi-unit value, regardless of currency",
            "in": "query",
            "name": "amount_gte",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Filter by amount less than this centi-unit value, regardless of currency",
            "in": "query",
            "name": "amount_lt",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Filter by amount less than or equal to this centi-unit value, regardless of currency",
            "in": "query",
            "name": "amount_lte",
            "required": false,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "description": "Filter by bank account ID (matches either sender or receiver)",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by counterparty ID",
            "in": "query",
            "name": "counterparty_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by created_at after this timestamp",
            "in": "query",
            "name": "created_at_gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter by created_at at or after this timestamp",
            "in": "query",
            "name": "created_at_gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter by created_at before this timestamp",
            "in": "query",
            "name": "created_at_lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter by created_at at or before this timestamp",
            "in": "query",
            "name": "created_at_lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Filter by transfer description",
            "in": "query",
            "name": "description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Cursor for backward pagination. Provide the ID of the first item in the previous page.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by whether the transfer is incoming",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "Maximum number of results to return (1-100)",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter by the receiver account number ID",
            "in": "query",
            "name": "receiver_account_number_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by the receiver bank account ID",
            "in": "query",
            "name": "receiver_bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by routing number",
            "in": "query",
            "name": "routing_number",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by the sender account number ID",
            "in": "query",
            "name": "sender_account_number_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by the sender bank account ID",
            "in": "query",
            "name": "sender_bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Field to sort results by",
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Sort order (asc or desc)",
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Cursor for forward pagination. Provide the ID of the last item in the previous page.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by transfer status",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by transfer batch ID",
            "in": "query",
            "name": "transfer_batch_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by a specific transfer ID",
            "in": "query",
            "name": "transfer_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by transfer type (e.g., ach, wire, book, realtime, check, swift)",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTransfers"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all transfers",
        "tags": [
          "Transfer"
        ]
      }
    },
    "/transfers/ach": {
      "get": {
        "description": "Retrieve all ACH transfers under your developer account. Filtered results can be retrieved with extra parameters in the query (`bank_account_id`, `counterparty_id`, etc.).",
        "operationId": "TransferACH_ListTransfers",
        "parameters": [
          {
            "description": "Filter ACH transfers by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter ACH transfers by counterparty ID.",
            "in": "query",
            "name": "counterparty_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter for incoming ACH transfers only.",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter ACH transfers by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by ACH transfer type. Can be `debit` or `credit`.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransferListResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all ACH transfers",
        "tags": [
          "TransferACH"
        ]
      },
      "post": {
        "description": "Creates an ACH transfer between an account and a `counterparty`.",
        "operationId": "TransferACH_CreateTransfer",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAchTransfer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create an ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/{ach_transfer_id}": {
      "get": {
        "description": "Retrieves a single transfer by its ID.",
        "operationId": "TransferACH_GetTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/{ach_transfer_id}/cancel": {
      "post": {
        "description": "Cancels an ACH transfer before it is sent to the Federal Reserve. This action can be performed only if a given transfer is `INITIATED` or `HOLD`. Canceling a held transfer returns the held funds to the available balance. You can read more about [ACH states here]({{ach.states}}).",
        "operationId": "TransferACH_CancelTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel an ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/{ach_transfer_id}/clear": {
      "post": {
        "description": "Release the hold on an ACH transfer in a `hold` state. The transfer is initiated as if it had just been created: the effective date and same-day eligibility are resolved against the clear time, and limits, sanctions screening and fraud checks are all evaluated now rather than when the hold was created. A held credit's funds are debited directly from the holding balance; a held debit never segregated funds, so clearing it simply resumes initiation.",
        "operationId": "TransferACH_ClearTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a held ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/{ach_transfer_id}/return": {
      "get": {
        "description": "Retrieve the return processing details of an ACH transfer. The return may be either filed by your platform, or sent to you by other RDFIs.",
        "operationId": "TransferACH_GetReturn",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHReturn"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an ACH return",
        "tags": [
          "TransferACH"
        ]
      },
      "post": {
        "description": "Submit a request to return an incoming ACH transfer that is sent by other ODFIs (i.e. Column is the RDFI). At most one return request can be submitted for each incoming ACH transfer. You can read more about [ACH returns here]({{ach.returns.create}}).",
        "operationId": "TransferACH_CreateReturn",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateACHReturnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHReturn"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create an ACH return",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/{ach_transfer_id}/reverse": {
      "post": {
        "description": "Reverse an erroneous outgoing ACH transfer. You can read more about [ACH Reversals]({{ach.reversals}}).",
        "operationId": "TransferACH_ReverseTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "ach_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReverseACHTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Reverse an ACH transfer",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/ach/returns": {
      "get": {
        "description": "Retrieve the return processing details of all ACH transfers under your developer account, including both returns filed by your platform and returns sent by other RDFIs.",
        "operationId": "TransferACH_ListReturns",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ACHReturnListResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all ACH returns",
        "tags": [
          "TransferACH"
        ]
      }
    },
    "/transfers/admin/{admin_transfer_id}": {
      "get": {
        "description": "Retrieve details of an admin transfer by its ID.",
        "operationId": "TransferAdmin_GetAdminTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "admin_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerFacingAdminTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get an admin transfer",
        "tags": [
          "TransferAdmin"
        ]
      }
    },
    "/transfers/book": {
      "get": {
        "description": "Retrieve all book transfers under your developer account. Filtered results can be retrieved with extra parameters in the query (`sender_bank_account_id`, `receiver_bank_account_id`, etc.).",
        "operationId": "TransferBook_ListBookTransfers",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter book transfers by receiver bank account ID.",
            "in": "query",
            "name": "receiver_bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter book transfers by sender bank account ID.",
            "in": "query",
            "name": "sender_bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter book transfers by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransferList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all book transfers",
        "tags": [
          "TransferBook"
        ]
      },
      "post": {
        "description": "A book transfer is a transaction between two Column accounts that you own. They can happen instantly and can be sent 24 hours a day, 7 days a week. Both accounts need to be under your platform, but don't need to be under the same entity. Alternatively, you can send a book transfer in two steps, using the \"hold\" parameter and \"clear\" method. Book transfers in a \"hold\" state can be updated and canceled. There is no reversal functionality for book transfers. Simply swap the `sender_account_number_id` and `receiver_account_number_id` and repeat the request.",
        "operationId": "TransferBook_CreateBookTransfer",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBookTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a book transfer",
        "tags": [
          "TransferBook"
        ]
      }
    },
    "/transfers/book/{book_transfer_id}": {
      "get": {
        "description": "Retrieve a single book transfer by its ID.",
        "operationId": "TransferBook_GetBookTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "book_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a book transfer",
        "tags": [
          "TransferBook"
        ]
      },
      "patch": {
        "description": "Update a book transfer by its ID. Transfer must be in a \"hold\" state. Only the `amount` can be updated.",
        "operationId": "TransferBook_UpdateBookTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "book_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBookTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a book transfer",
        "tags": [
          "TransferBook"
        ]
      }
    },
    "/transfers/book/{book_transfer_id}/cancel": {
      "post": {
        "description": "Cancel a book transfer hold by its ID. Transfer must be in a \"hold\" state.",
        "operationId": "TransferBook_CancelBookTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "book_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a book transfer",
        "tags": [
          "TransferBook"
        ]
      }
    },
    "/transfers/book/{book_transfer_id}/clear": {
      "post": {
        "description": "Clear a book transfer by its ID. Transfer must be in a \"hold\" state. If the `amount` is specified, then that amount will be cleared, regardless of the amount of the hold. If no amount is specified, then the amount of the hold will be cleared.",
        "operationId": "TransferBook_ClearBookTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "book_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ClearBookTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a book transfer",
        "tags": [
          "TransferBook"
        ]
      }
    },
    "/transfers/checks": {
      "get": {
        "description": "Retrieve all check transfers on your platform.",
        "operationId": "TransferCheck_ListCheckTransfers",
        "parameters": [
          {
            "description": "Filter check transfers by account number ID.",
            "in": "query",
            "name": "account_number_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter check transfers by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter check transfers by lockbox ID.",
            "in": "query",
            "name": "lockbox_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter check transfers by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by check transfer type. Can be `debit` or `credit`.",
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCheckTransfers"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all check transfers",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/{check_transfer_id}": {
      "get": {
        "description": "Retrieve a single check transfer by its ID.",
        "operationId": "TransferCheck_GetCheckTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "check_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a check transfer",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/{check_transfer_id}/preview-pdf": {
      "get": {
        "description": "Get a preview PDF for a transfer. Only available for checks delivered by Column.",
        "operationId": "TransferCheck_GetPreviewPDF",
        "parameters": [
          {
            "in": "path",
            "name": "check_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a check preview PDF for an issued transfer",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/{check_transfer_id}/return": {
      "post": {
        "description": "Submit a request to return an incoming check transfer received from an ODFI. At most one return request can be submitted for each check. You can read more about check returns here.",
        "operationId": "TransferCheck_CreateCheckReturn",
        "parameters": [
          {
            "in": "path",
            "name": "check_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCheckReturnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a check return",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/{check_transfer_id}/returns": {
      "get": {
        "description": "Retrieve all returns for a check transfer by the check transfer ID.",
        "operationId": "TransferCheck_GetCheckReturns",
        "parameters": [
          {
            "in": "path",
            "name": "check_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCheckReturnResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get check transfer returns",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/{check_transfer_id}/stop-payment": {
      "post": {
        "description": "Create a stop payment on a single check transfer by its ID. A check can only be stopped if it is of type debit and is in `issued` or `manual_review` status. A stopped check will move into a `pending_stop` status with a `pending_stop_at` timestamp until funds are released, at which point the status will be `stopped` and the `stopped_at` timestamp will be set.",
        "operationId": "TransferCheck_StopPayment",
        "parameters": [
          {
            "in": "path",
            "name": "check_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Stop a check transfer",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/deposit": {
      "post": {
        "description": "Deposit a check into a Column bank account.",
        "operationId": "TransferCheck_DepositCheck",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DepositCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Deposit a check",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/image/back": {
      "post": {
        "description": "Preprocess an image of the back of a check. The response includes a processed TIFF image that conforms to the ICL file standard. The response fields are in the same format as the input of the check deposit API. We recommend placing the check on a darker background, such as a darker shade if the check paper is white. The check itself should occupy the majority of the image. Additionally, we suggest using a higher DPI to ensure that the characters are easily recognizable. It is also advisable to correctly orient the check. Note that the MICR and amount parsing is still in Beta. We recommend you validate parsed data with the user before submitting a check deposit.",
        "operationId": "TransferCheck_ProcessCheckBackImage",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "description": "The file to upload, sent per RFC 2388 `multipart/form-data` protocol.",
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckBackImagingResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Capture back of check",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/image/front": {
      "post": {
        "description": "Preprocess an image of the front of a check. The response includes the parsed MICR Line data, deposit amount, and a processed TIFF image that conforms to the ICL file standard. The response fields are in the same format as the input of the check deposit API. We recommend placing the check on a darker background, such as a darker shade if the check paper is white. The check itself should occupy the majority of the image. Additionally, we suggest using a higher DPI to ensure that the characters are easily recognizable. It is also advisable to correctly orient the check. Note that the MICR and amount parsing is still in Beta. We recommend you validate parsed data with the user before submitting a check deposit.",
        "operationId": "TransferCheck_ProcessCheckFrontImage",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "properties": {
                  "file": {
                    "description": "The file to upload, sent per RFC 2388 `multipart/form-data` protocol.",
                    "format": "binary",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckFrontImagingResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Capture front of check",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/issue": {
      "post": {
        "description": "Issue a check to a specific payee for a given amount. If mail_check_request is included, the check will be delivered by Column too.",
        "operationId": "TransferCheck_IssueCheck",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IssueCheckRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Issue a check",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/checks/lockboxes": {
      "get": {
        "description": "Retrieve all check lockboxes under your platform.",
        "operationId": "TransferCheckLockbox_ListLockboxes",
        "parameters": [
          {
            "description": "Return results associated with this bank account.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLockboxes"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all check lockboxes",
        "tags": [
          "TransferCheckLockbox"
        ]
      },
      "post": {
        "description": "Create and assign a check lockbox to a bank account or account number. If you specify a bank account, Column assigns the lockbox to the account's default account number. Each account number can have at most one linked lockbox.",
        "operationId": "TransferCheckLockbox_CreateLockbox",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLockboxRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lockbox"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a check lockbox",
        "tags": [
          "TransferCheckLockbox"
        ]
      }
    },
    "/transfers/checks/lockboxes/{lockbox_id}": {
      "delete": {
        "description": "Close a check lockbox by its ID. Once closed, the lockbox can no longer be used to receive mailed checks.",
        "operationId": "TransferCheckLockbox_DeleteLockbox",
        "parameters": [
          {
            "in": "path",
            "name": "lockbox_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lockbox"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete a check lockbox",
        "tags": [
          "TransferCheckLockbox"
        ]
      },
      "get": {
        "description": "Retrieve a single check lockbox by its ID.",
        "operationId": "TransferCheckLockbox_GetLockbox",
        "parameters": [
          {
            "in": "path",
            "name": "lockbox_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Lockbox"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a check lockbox",
        "tags": [
          "TransferCheckLockbox"
        ]
      }
    },
    "/transfers/checks/returns": {
      "get": {
        "description": "Retrieve the return processing details of all check returns under your platform, including returns created by you and other financial institutions.",
        "operationId": "TransferCheck_ListCheckReturns",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCheckReturnResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all check returns",
        "tags": [
          "TransferCheck"
        ]
      }
    },
    "/transfers/international-wire": {
      "get": {
        "description": "Retrieve all international wire transfers under your platform.",
        "operationId": "TransferSwift_ListTransfers",
        "parameters": [
          {
            "description": "Filter international wire transfers by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListSwiftTransfersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all international wire transfers",
        "tags": [
          "TransferSwift"
        ]
      },
      "post": {
        "description": "Create an international wire transfer between a Column account and a counterparty. Transfer status can be tracked via the Tracking API.",
        "operationId": "TransferSwift_CreateTransfer",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateInternationalWireTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create an international wire transfer",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}": {
      "get": {
        "description": "Retrieve a single international wire transfer by its ID.",
        "operationId": "TransferSwift_GetTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get international wire transfer",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/amendment": {
      "post": {
        "description": "Create an amendment for an international wire transfer that has been delivered. Amendments can only be created for outgoing transfers in specific statuses and only one amendment per transfer is allowed.\n**Amendment Eligibility Requirements**: - Only **outgoing transfers** can be amended - Transfer must be in `initiated`, `submitted`, `delivered`, `settled`, or `completed` status - Only **one amendment per transfer** is allowed",
        "operationId": "TransferSwift_CreateAmendment",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAmendmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create international wire amendment",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/cancel": {
      "post": {
        "description": "Send a cancellation request to recall funds from the beneficiary for an outgoing international wire transfer. The beneficiary may approve or reject the cancellation request. Cancellation status can be tracked via the Tracking API.",
        "operationId": "TransferSwift_CancelTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelInternationalWireRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel an outgoing international wire",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/clear": {
      "post": {
        "description": "Release the hold on an international wire in a `hold` state. For an outgoing wire this sends it: the held funds are debited directly from the holding balance and never pass back through the available balance, and an FX transfer fails with `fx_quote_expired` if the hold outlived the quote booked at creation -- cancel the transfer instead. For an incoming wire this releases the held credit into the beneficiary's available balance and completes the transfer, firing the standard completed event.",
        "operationId": "TransferSwift_ClearHeldTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a held international wire transfer",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/hold-cancel": {
      "post": {
        "description": "Abort an international wire in a `hold` state. The held funds return to the available balance and the wire is never sent. Distinct from a cancellation request, which recalls a wire that has already been sent.",
        "operationId": "TransferSwift_CancelHeldTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a held international wire transfer",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/return": {
      "post": {
        "description": "Return an incoming international wire transfer to the originator. Return status can be tracked via the Tracking API.",
        "operationId": "TransferSwift_ReturnTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReturnInternationalWireRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Return an incoming international wire",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/{swift_transfer_id}/tracking": {
      "get": {
        "description": "Retrieve tracking information for an international wire transfer.",
        "operationId": "TransferSwift_TrackTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "swift_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwiftTracking"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Track an international wire transfer",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/fx-rate": {
      "post": {
        "description": "Request a foreign exchange quote to exchange USD to other currencies for international wire transfers. Quotes are not booked until they are used in transfer requests.",
        "operationId": "TransferSwift_QueryFXQuote",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryFXQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FXQuote"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Request a foreign exchange quote",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/fx-rate-sheet": {
      "get": {
        "description": "Retrieve the FX rate sheet for all foreign currencies that Column supports.",
        "operationId": "TransferSwift_QueryFXRateSheet",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FXRateSheet"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get FX rate sheet",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/fx-rate/{fx_quote_id}": {
      "get": {
        "description": "Retrieve a single foreign exchange quote by its ID.",
        "operationId": "TransferSwift_GetFXQuote",
        "parameters": [
          {
            "in": "path",
            "name": "fx_quote_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FXQuote"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a foreign exchange quote",
        "tags": [
          "TransferSwift"
        ]
      }
    },
    "/transfers/international-wire/fx-rate/{fx_quote_id}/book": {
      "post": {
        "description": "Book a single foreign exchange quote by its ID. If the quote has already been booked before, it will be returned.",
        "operationId": "TransferSwift_BookFXQuote",
        "parameters": [
          {
            "in": "path",
            "name": "fx_quote_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FXQuote"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Book a foreign exchange quote",
        "tags": [
          "TransferSwift"
        ],
        "x-callouts": [
          {
            "body": "A FX quote should be booked only with the intention of completing a transfer. If you do not intend to use a booked FX quote, it should be canceled as soon as possible. You may incur costs associated with canceling booked FX quotes given FX rate fluctuations.",
            "variant": "warning"
          }
        ]
      }
    },
    "/transfers/international-wire/fx-rate/{fx_quote_id}/cancel": {
      "post": {
        "description": "Cancel a single foreign exchange quote by its ID. If the quote has already been used by an outgoing transfer, it cannot be canceled. If the quote has already been canceled before, it will be returned.",
        "operationId": "TransferSwift_CancelFXQuote",
        "parameters": [
          {
            "in": "path",
            "name": "fx_quote_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FXQuote"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a foreign exchange quote",
        "tags": [
          "TransferSwift"
        ],
        "x-callouts": [
          {
            "body": "If you do not intend to use a booked FX quote, it should be canceled as soon as possible. You may incur costs associated with canceling booked FX quotes given FX rate fluctuations.",
            "variant": "warning"
          }
        ]
      }
    },
    "/transfers/realtime": {
      "get": {
        "description": "Retrieve all realtime transfers under your platform.",
        "operationId": "TransferRealtime_ListTransfers",
        "parameters": [
          {
            "description": "Filter realtime transfers by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter for incoming realtime transfers only.",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfersList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all realtime transfers",
        "tags": [
          "TransferRealtime"
        ]
      },
      "post": {
        "description": "Create a realtime transfer between a Column account and a counterparty.",
        "operationId": "TransferRealtime_CreateTransfer",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealtimeTransfer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a realtime transfer",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/{realtime_transfer_id}": {
      "get": {
        "description": "Retrieve a single realtime transfer by its ID.",
        "operationId": "TransferRealtime_GetTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a realtime transfer",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/{realtime_transfer_id}/cancel": {
      "post": {
        "description": "Abort an outgoing realtime transfer in a `hold` state. The held funds return to the available balance and nothing is ever routed or sent. Completed outgoing transfers require a return request instead.",
        "operationId": "TransferRealtime_CancelTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a held realtime transfer",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/{realtime_transfer_id}/clear": {
      "post": {
        "description": "Release the hold on a realtime transfer in a `hold` state. For an outgoing transfer the rail (FedNow or RTP) is selected at clear time and the transfer is sent, with the held funds debited directly from the holding balance. For an incoming transfer the received funds move from the holding balance into the available balance and the transfer completes; nothing is sent to the network.",
        "operationId": "TransferRealtime_ClearTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a held realtime transfer",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/{realtime_transfer_id}/return": {
      "post": {
        "description": "Return a realtime transfer by its ID.",
        "operationId": "TransferRealtime_ReturnTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReturnRealtimeTransferParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Return a realtime transfer",
        "tags": [
          "TransferRealtime"
        ],
        "x-response-example": {
          "accepted_at": "2023-12-29T19:45:11Z",
          "account_number_id": "acno_2XrFelm5efqwGkPsu3B1DtSEDDg",
          "allow_overdraft": false,
          "amount": 10000,
          "bank_account_id": "bacc_2XrFelZxSUOXXTswfr0h9KByzNp",
          "blocked_at": null,
          "completed_at": "2023-12-29T19:45:13Z",
          "counterparty_id": "cpty_2aELmewqaBj5Bp6oraJ7Pl6LH1p",
          "created_at": "2023-12-29T19:45:10Z",
          "currency_code": "USD",
          "description": "Example realtime transfer",
          "id": "rttr_2aEM6RbzozxcvVY11ArHJw1Ka4E",
          "idempotency_key": null,
          "initiated_at": "2023-12-29T19:45:10Z",
          "is_incoming": false,
          "is_on_us": false,
          "manual_review_approved_at": null,
          "manual_review_at": null,
          "manual_review_rejected_at": null,
          "pending_at": null,
          "rejected_at": null,
          "rejection_additional_info": null,
          "rejection_code": null,
          "rejection_code_description": null,
          "return_pair_transfer_id": "rttr_2ipl7TLOLY0Kyv5flfi2NHAIqJm",
          "status": "completed",
          "updated_at": "2023-12-29T19:45:13Z"
        }
      }
    },
    "/transfers/realtime/{realtime_transfer_id}/return-request": {
      "post": {
        "description": "Create a return request for a realtime transfer by its ID.",
        "operationId": "TransferRealtime_CreateReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealtimeRequestForReturn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a realtime return request",
        "tags": [
          "TransferRealtime"
        ],
        "x-response-example": {
          "accepted_at": null,
          "id": "rtrr_334MvwETg0RW4uS6SifgrpSw7QA",
          "is_incoming": false,
          "original_transfer_id": "rttr_334LjBzSfBIie2ddjXf6k6ssEg3",
          "pending_at": "2025-09-22T20:15:25Z",
          "reason_code": "CUST",
          "reason_code_description": "CUST: Cancellation requested by the Debtor",
          "rejected_at": null,
          "return_transfer_id": null,
          "status": "pending"
        }
      }
    },
    "/transfers/realtime/request-for-payment": {
      "get": {
        "description": "Retrieve all Realtime Requests for Payment (RFPs) under your platform.",
        "operationId": "TransferRealtime_ListRFP",
        "parameters": [
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeRFPList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all realtime RFPs",
        "tags": [
          "TransferRealtime"
        ]
      },
      "post": {
        "description": "Create a Realtime Request For Payment (RFP) between a Column account and a counterparty.",
        "operationId": "TransferRealtime_CreateRFP",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRealtimeRFP"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeRFP"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a realtime RFP",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/request-for-payment/{realtime_rfp_id}": {
      "get": {
        "description": "Retrieve a single Realtime Request for Payment (RFP) by its ID.",
        "operationId": "TransferRealtime_GetRFP",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_rfp_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeRFP"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a realtime RFP",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/request-for-payment/{realtime_rfp_id}/accept": {
      "patch": {
        "description": "Accept an outstanding Realtime RFP by its ID. Only incoming Realtime RFPs with status presented or received can be accepted.",
        "operationId": "TransferRealtime_AcceptRFP",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_rfp_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeRFP"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Accept a realtime RFP",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/request-for-payment/{realtime_rfp_id}/reject": {
      "patch": {
        "description": "Reject an outstanding Realtime RFP by its ID. Only incoming Realtime RFPs in status presented or received can be rejected.",
        "operationId": "TransferRealtime_RejectRFP",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_rfp_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectRealtimeRFP"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeRFP"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Reject a realtime RFP",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/return-requests": {
      "get": {
        "description": "Retrieve all Realtime returns under your developer account.",
        "operationId": "TransferRealtime_ListReturnRequests",
        "parameters": [
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeReturnRequestsList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all realtime return requests",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/return-requests/{realtime_return_request_id}": {
      "get": {
        "description": "Retrieves a single Realtime return request by its ID.",
        "operationId": "TransferRealtime_GetReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a realtime return request by ID",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/return-requests/{realtime_return_request_id}/accept": {
      "patch": {
        "description": "Accept an outstanding Realtime Return Request by its ID. Only incoming Realtime Return Requests with a pending status can be accepted.",
        "operationId": "TransferRealtime_AcceptReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Accept a realtime return request",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/realtime/return-requests/{realtime_return_request_id}/reject": {
      "patch": {
        "description": "Reject an outstanding Realtime Return Request by its ID. Only incoming Realtime Return Requests with a pending status can be rejected.",
        "operationId": "TransferRealtime_RejectReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "realtime_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectRealtimeReturnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RealtimeReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Reject a realtime return request",
        "tags": [
          "TransferRealtime"
        ]
      }
    },
    "/transfers/wire": {
      "get": {
        "description": "Retrieve all wire transfers under your platform.",
        "operationId": "TransferWire_ListWireTransfers",
        "parameters": [
          {
            "description": "Filter wire transfers by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire transfers by counterparty ID.",
            "in": "query",
            "name": "counterparty_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter for incoming wire transfers only.",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire transfers by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransferList"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all wire transfers",
        "tags": [
          "TransferWire"
        ]
      },
      "post": {
        "description": "Create a wire transfer between a Column account and a counterparty.",
        "operationId": "TransferWire_CreateWireTransfer",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWireTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/{wire_transfer_id}": {
      "get": {
        "description": "Retrieve a single wire transfer by its ID.",
        "operationId": "TransferWire_GetWireTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "wire_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/{wire_transfer_id}/cancel": {
      "post": {
        "description": "Abort an outgoing wire transfer in a `hold` state. The held funds return to the available balance and the wire is never sent.",
        "operationId": "TransferWire_CancelWireTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "wire_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Cancel a held outgoing wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/{wire_transfer_id}/clear": {
      "post": {
        "description": "Release the hold on a wire transfer in a `hold` state. For an incoming transfer the held funds move from the holding balance into the available balance and the transfer completes. For an outgoing transfer the held funds are released and the wire is sent.",
        "operationId": "TransferWire_ClearWireTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "wire_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApprovalActionRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Clear a held wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/{wire_transfer_id}/return-request": {
      "post": {
        "description": "Sends an outgoing wire return request to request the return of funds of a previously sent outgoing wire transfer.",
        "operationId": "TransferWire_CreateWireReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWireReturnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a wire return request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/{wire_transfer_id}/reverse": {
      "post": {
        "description": "Reverse an incoming wire transfer received in error. You can read more about [Wire Reversals]({{wire.reversals}}).",
        "operationId": "TransferWire_ReverseWireTransfer",
        "parameters": [
          {
            "in": "path",
            "name": "wire_transfer_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReverseWireTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Reverse an incoming wire transfer",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/drawdown": {
      "get": {
        "description": "Retrieve all wire drawdowns under your developer account.",
        "operationId": "TransferWire_ListWireDrawdownRequests",
        "parameters": [
          {
            "description": "Filter wire drawdown requests by account number ID.",
            "in": "query",
            "name": "account_number_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire drawdown requests by bank account ID.",
            "in": "query",
            "name": "bank_account_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire drawdown requests by beneficiary counterparty ID.",
            "in": "query",
            "name": "beneficiary_counterparty_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter for incoming wire drawdown requests only.",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire drawdown requests by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWireDrawdownRequests"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all wire drawdown requests",
        "tags": [
          "TransferWire"
        ]
      },
      "post": {
        "description": "Sends an outgoing wire drawdown to request funds from an external account.",
        "operationId": "TransferWire_CreateWireDrawdown",
        "parameters": [
          {
            "description": "Idempotency keys can be up to 255 characters long and are case sensitive. Column reserves the right to expire idempotency keys after 30 days. Only ASCII printable characters (code 32 - 126) are allowed for idempotency keys.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 255,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWireDrawdownRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireDrawdownRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a wire drawdown request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/drawdown/{wire_drawdown_request_id}": {
      "get": {
        "description": "Retrieves a single wire drawdown request by its ID.",
        "operationId": "TransferWire_GetWireDrawdownRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_drawdown_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireDrawdownRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a wire drawdown request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/drawdown/{wire_drawdown_request_id}/approve": {
      "post": {
        "description": "Approves a single wire drawdown request by its ID. If approved, an outgoing wire is initiated using the information specified in the drawdown request.",
        "operationId": "TransferWire_ApproveWireDrawdownRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_drawdown_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireTransfer"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Approve a wire drawdown request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/return-requests": {
      "get": {
        "description": "Retrieve all wire returns under your developer account.",
        "operationId": "TransferWire_ListWireReturnRequests",
        "parameters": [
          {
            "description": "Return results where the `created_at` field is greater than this value.",
            "in": "query",
            "name": "created.gt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is greater than or equal to this value.",
            "in": "query",
            "name": "created.gte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than this value.",
            "in": "query",
            "name": "created.lt",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "Return results where the `created_at` field is less than or equal to this value.",
            "in": "query",
            "name": "created.lte",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter for incoming wire return requests only.",
            "in": "query",
            "name": "is_incoming",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "Filter wire return requests by the original wire transfer ID.",
            "in": "query",
            "name": "original_transfer_id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter wire return requests by status.",
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWireReturnRequests"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all wire return requests",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/return-requests/{wire_return_request_id}": {
      "get": {
        "description": "Retrieves a single wire return request by its ID.",
        "operationId": "TransferWire_GetWireReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a wire return request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/return-requests/{wire_return_request_id}/approve": {
      "post": {
        "description": "Approves a single wire return request by its ID. If approved, an outgoing wire is initiated using the information specified in the return request.",
        "operationId": "TransferWire_ApproveWireReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Approve a wire return request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/transfers/wire/return-requests/{wire_return_request_id}/reject": {
      "post": {
        "description": "Rejects a single wire return request by its ID. If rejected, a return response is sent to the requestor.",
        "operationId": "TransferWire_RejectWireReturnRequest",
        "parameters": [
          {
            "in": "path",
            "name": "wire_return_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectWireReturnRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WireReturnRequest"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Reject a wire return request",
        "tags": [
          "TransferWire"
        ]
      }
    },
    "/webhook-deliveries/endpoint/{id}": {
      "get": {
        "description": "List all the webhook delivery and retry attempts for this endpoint.",
        "operationId": "Webhook_ListEndpointWebhookDeliveries",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookDeliveries"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all webhook deliveries",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook-deliveries/event/{id}": {
      "get": {
        "description": "List all the webhook delivery and retry attempts for this event.",
        "operationId": "Webhook_ListEventWebhookDeliveries",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookDeliveries"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List webhook deliveries by event",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook-endpoints": {
      "get": {
        "description": "List all webhooks under your developer account.",
        "operationId": "Webhook_ListWebhookEndpoints",
        "parameters": [
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookEndpoints"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all webhook endpoints",
        "tags": [
          "Webhook"
        ]
      },
      "post": {
        "description": "Create a webhook URL and description. This can also be done on the [dashboard]({{dashboard}}).",
        "operationId": "Webhook_CreateWebhookEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook-endpoints/{webhook_endpoint_id}": {
      "delete": {
        "description": "Delete a webhook endpoint by its ID.",
        "operationId": "Webhook_DeleteWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      },
      "get": {
        "description": "Retrieve a single webhook endpoint by its ID.",
        "operationId": "Webhook_GetWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      },
      "patch": {
        "description": "Update a webhook endpoint by its ID.",
        "operationId": "Webhook_UpdateWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook-endpoints/{webhook_endpoint_id}/verify": {
      "post": {
        "description": "Send a test event to a webhook endpoint to verify it is configured correctly.",
        "operationId": "Webhook_VerifyWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Verify a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook_deliveries/endpoint/{id}": {
      "get": {
        "deprecated": true,
        "operationId": "Webhook_ListEndpointWebhookDeliveries",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookDeliveries"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List webhook deliveries by endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook_deliveries/event/{id}": {
      "get": {
        "deprecated": true,
        "operationId": "Webhook_ListEventWebhookDeliveries",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookDeliveries"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List webhook deliveries by event",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook_endpoints": {
      "get": {
        "deprecated": true,
        "operationId": "Webhook_ListWebhookEndpoints",
        "parameters": [
          {
            "description": "A cursor for use in pagination. `ending_before` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, starting with `foo_ZXhhbXBsZQo`, your subsequent call can include `ending_before=foo_ZXhhbXBsZQo` in order to fetch the previous page of the list.",
            "in": "query",
            "name": "ending_before",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "A limit on the number of objects to be returned, between `1` and `100`. The default is `10`.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "type": "integer"
            }
          },
          {
            "description": "A cursor for use in pagination. `starting_after` is an ID that defines your place in the list. For instance, if you make a list request and receive 20 objects, ending with `foo_ZXhhbXBsZQo`, your subsequent call can include `starting_after=foo_ZXhhbXBsZQo` in order to fetch the next page of the list.",
            "in": "query",
            "name": "starting_after",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWebhookEndpoints"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "List all webhook endpoints",
        "tags": [
          "Webhook"
        ]
      },
      "post": {
        "deprecated": true,
        "operationId": "Webhook_CreateWebhookEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Create a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook_endpoints/{webhook_endpoint_id}": {
      "delete": {
        "deprecated": true,
        "operationId": "Webhook_DeleteWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Delete a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      },
      "get": {
        "deprecated": true,
        "operationId": "Webhook_GetWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Get a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      },
      "patch": {
        "deprecated": true,
        "operationId": "Webhook_UpdateWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEndpoint"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Update a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    },
    "/webhook_endpoints/{webhook_endpoint_id}/verify": {
      "post": {
        "deprecated": true,
        "operationId": "Webhook_VerifyWebhookEndpoint",
        "parameters": [
          {
            "in": "path",
            "name": "webhook_endpoint_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyWebhookEndpointRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorResponse"
          },
          "404": {
            "$ref": "#/components/responses/ErrorResponse"
          }
        },
        "summary": "Verify a webhook endpoint",
        "tags": [
          "Webhook"
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ACHPositivePayRuleResponse": {
        "description": "The ACH Positive Pay Rule object represents a whitelist rule for handling incoming debits. Incoming debits to a bank account with at least one positive pay rule will be automatically returned unless the incoming debit meets the conditions of a positive pay rule on the account. A positive pay rule is uniquely identified by the target bank account and the ACH Company ID present in an incoming debit.",
        "properties": {
          "ach_company_id": {
            "description": "The ACH Company ID for the rule. This is a ten digit identifier.",
            "type": "string"
          },
          "ach_positive_pay_rule_id": {
            "description": "The unique ID of the ACH positive pay rule",
            "type": "string"
          },
          "amount": {
            "description": "the amount threshold in cents that will be used in rule evaluation. Must not be set if `amount_condition` is set to `ANY_AMOUNT`",
            "format": "int64",
            "type": "integer"
          },
          "amount_condition": {
            "description": "This required field configures the rule to make a specific kind of amount comparison. equal: The incoming debit will only be permitted if the transfer amount equals the rule amount. `less_than_or_equal_to`: The incoming debit will only be permitted if the transfer amount is less than or equal to the rule amount. `any_amount`: The incoming debit will be permitted for any amount.",
            "type": "string"
          },
          "bank_account_id": {
            "description": "ID of the bank account this rule applies to",
            "type": "string"
          },
          "description": {
            "description": "Description of the rule. Maximum length: `255` characters.",
            "type": "string"
          }
        },
        "required": [
          "ach_positive_pay_rule_id",
          "bank_account_id",
          "description",
          "ach_company_id",
          "amount",
          "amount_condition"
        ],
        "type": "object"
      },
      "ACHReturn": {
        "description": "The ACH return object represents the current state of a single ACH return originated by or received by Column. The ACH return object will contain all relevant information about the specific return, which are described in the parameters below.",
        "properties": {
          "ach_transfer_id": {
            "description": "The id of the ACH transfer that is being returned",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp at which the return was created",
            "format": "date-time",
            "type": "string"
          },
          "details": {
            "description": "Includes an object containing detailed information about the return",
            "items": {
              "$ref": "#/components/schemas/ACHReturnEvent"
            },
            "type": "array"
          },
          "is_incoming": {
            "description": "Indicates if the return was initiated by an RDFI ( `true` ) or by Column ( `false` ).",
            "type": "boolean"
          },
          "status": {
            "description": "The current state of the ACH return. The possible states are `INITIATED`, `SENT`, `DISHONORED`, `CONTESTED`, `COMPLETED`, and `REJECTED`.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the return was updated (typically a status update)",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "ach_transfer_id",
          "created_at",
          "updated_at",
          "status",
          "is_incoming",
          "details"
        ],
        "type": "object"
      },
      "ACHReturnEvent": {
        "properties": {
          "addenda": {
            "description": "Optional information provided about the ACH return",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp at which the ACH return is created",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the ACH return",
            "type": "string"
          },
          "return_code": {
            "description": "Reason for the ACH return",
            "type": "string"
          },
          "status": {
            "description": "Status of the ACH return",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the ACH return is updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "status",
          "return_code",
          "description",
          "addenda"
        ],
        "type": "object"
      },
      "ACHReturnListResponse": {
        "properties": {
          "ach_returns": {
            "description": "List of ACH returns",
            "items": {
              "$ref": "#/components/schemas/ACHReturn"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether additional returns exist beyond this page",
            "type": "boolean"
          }
        },
        "required": [
          "ach_returns",
          "has_more"
        ],
        "type": "object"
      },
      "ACHTransfer": {
        "description": "The ACH transfer object represents the current state of a single ACH transfers originated by or received by Column. The ACH object will contain all relevant information about the specific transfer, which are described in the parameters below.",
        "properties": {
          "account_number_id": {
            "description": "ID of the account number that is sending the transfer",
            "type": "string"
          },
          "ach_transfer_batch_id": {
            "description": "ID of the ACH transfer batch this transfer belongs to.",
            "nullable": true,
            "type": "string"
          },
          "acknowledged_at": {
            "description": "The timestamp at which an acknowledgement is received for a `CCD` or `CTX` ACH transfer.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175.",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending the transfer",
            "type": "string"
          },
          "cancelled_at": {
            "description": "The timestamp at which the transfer is cancelled",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "company_discretionary_data": {
            "description": "This optional field allows you to include codes (one or more), of significance only to you, to enable specialized handling of the transfer. There is no standardized interpretation for the value of the field. Maximum length: `20` characters. CIE: This field may contain the Biller's name. CTX: The Originator's bank account number may be placed in this field.",
            "type": "string"
          },
          "company_entry_description": {
            "description": "You can use this optional field to provide the Receiver with a description of the purpose of the transfer. For example, \"Gas bill\", \"Reg. Salary\", \"ins. prem.\", \"Soc. Sec.\", \"DTC\", \"Trade Pay\", \"PURCHASE\", etc. Default value: `PAYMENT`. Maximum length: `10` characters.",
            "type": "string"
          },
          "company_id": {
            "description": "Typically, a 10-digit unique identifier used for identifying entities, called originators, sending or collecting payments via ACH credit or ACH debit. For WEB entries it can be alphanumeric and less than 10 characters. If you would like to use a specific company ID when originating ACH transactions, please contact us.",
            "type": "string"
          },
          "company_name": {
            "description": "The name of the originator company that initiated the ACH transfer",
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp at which the 60 day return window has passed for this ACH transfer, and it is officially completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that will receive the transfer",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp at which the transfer request is created",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the ACH transfer.",
            "nullable": true,
            "type": "object"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "description": {
            "description": "Description of the transfer visible only in your platform. Maximum length: `255` characters.",
            "type": "string"
          },
          "effective_on": {
            "description": "Datetime (00:00AM in Pacific Time zone) on which the transfer is effective. For incoming transfers, this is 00:00AM on the Settlement Date of the transfer in PT timezone.",
            "format": "date-time",
            "type": "string"
          },
          "entry_class_code": {
            "description": "Standard Entry Class code of the transfer",
            "type": "string"
          },
          "entry_details": {
            "description": "ACH entry details containing transaction code information",
            "nullable": true,
            "type": "object"
          },
          "hold_at": {
            "description": "The timestamp at which the ACH transfer was placed on hold.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "iat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IATAddenda"
              }
            ],
            "description": "This field provides additional IAT (International ACH Transfer) addenda information",
            "nullable": true,
            "type": "object"
          },
          "id": {
            "description": "The unique id for this object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the ACH transfer",
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp at which Column received your ACH request",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "intermediary_financial_institutions": {
            "description": "Applies only to IAT transfers. This is a List of intermediary institutions involved in an IAT transfer.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "is_incoming": {
            "description": "Indicates whether the ACH transfer was incoming ( `true` ) or outgoing ( `false` ).",
            "type": "boolean"
          },
          "is_on_us": {
            "description": "Indicates whether or not the ACH transfer is coming from a Column bank account. If `true` the request is processed immediately like a book transfer, and not sent to the Fed.",
            "type": "boolean"
          },
          "manual_review_at": {
            "description": "The timestamp at which the ACH transfer went into the manual review state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "notification_of_changes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/NotificationChanges"
              }
            ],
            "description": "Details of Notifications of Change (NOCs), including corrected counterparty information and transaction codes. Available only with ach.`outgoing_transfer`.noc events.",
            "nullable": true,
            "type": "object"
          },
          "nsf_deadline": {
            "description": "For incoming ACH Debits and available only with ach.`incoming_transfer`.nsf events. This is the deadline by which the receiver account must be funded to complete the incoming debit. Column will file an NSF return for this ACH transfer if the account is not funded by the `nsf_deadline`.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "odfi_routing_number": {
            "description": "The externally facing routing number for the ODFI that initiated the ACH Transfer",
            "type": "string"
          },
          "payment_related_info": {
            "description": "Provides additional information on the ACH transfer. Limited to 80 characters for most transfer types, but CTX transfers can include up to 799,920 characters (9,999 addenda records x 80 characters each). ENR and TRX transfers may also support extended lengths.",
            "type": "string"
          },
          "pre_review_at": {
            "description": "The timestamp at which transfer approval became required for the ACH transfer.",
            "format": "date-time",
            "type": "string"
          },
          "receiver_id": {
            "description": "This field contains the accounting reference number by which the Receiver is known to the Originator. It is included for further identification and for descriptive purposes. For example, it may be the number shown on an invoice, statement, billhead, notice, or other communication as the reference for the Receiver to update account receivable records.",
            "type": "string"
          },
          "receiver_name": {
            "description": "The name of the receiver, usually the name on the bank account of the Receiver. Default value: beneficiary name of the counterparty. Maximum length: `22` characters.",
            "type": "string"
          },
          "return_contested_at": {
            "description": "The timestamp at which the dishonored return for this transfer was contested by the RDFI",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_details": {
            "description": "Details of the return processing history (e.g., initiated, dishonored, dishonor contested, manual review, etc.). Available only with ach.*.returned , ach.*.`return_dishonored` or ach.*.`return_contested` events.",
            "items": {
              "$ref": "#/components/schemas/ACHReturnEvent"
            },
            "type": "array"
          },
          "return_dishonored_at": {
            "description": "The timestamp at which the return for this transfer was dishonored by the ODFI",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_dishonored_funds_unlocked_at": {
            "description": "The timestamp at which the dishonored return funds are unlocked",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "returned_at": {
            "description": "The timestamp at which the ACH transfer is returned by the RDFI",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "reversal_pair_transfer_id": {
            "description": "If the transfer is the original transfer of an ACH Reversal, this field is the unique ID of the reversal transfer. If the transfer is the reversal transfer of an ACH Reversal, this field is the unique ID of the original transfer.",
            "type": "string"
          },
          "reviews": {
            "description": "The transfer approval decisions recorded on the ACH transfer. Each entry is a dashboard user approving or rejecting the transfer while it was in `pre_review`. This list is only populated when transfer approvals are enabled for the platform, or for the API key that created the transfer; otherwise it is omitted from the response.",
            "items": {
              "$ref": "#/components/schemas/TransferReview"
            },
            "type": "array"
          },
          "same_day": {
            "description": "Specify if the transfer is a same-day ACH transfer. If it is set as `true`, it takes precedence over `effective_date` and overrides it.",
            "type": "boolean"
          },
          "settled_at": {
            "description": "The timestamp at which the ACH was settled",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The current state of the ACH transfer. Possible values: `PRE_REVIEW`, `INITIATED`, `HOLD`, `PENDING_SUBMISSION`, `SUBMITTED`, `SETTLED`, `RETURNED`, `COMPLETED`, `CANCELED`, `SCHEDULED`, `PENDING_RETURN`, `RETURN_DISHONORED`, `RETURN_DISHONORED_FUNDS_UNLOCKED`, `RETURN_CONTESTED`, `MANUAL_REVIEW`, and `MANUAL_REVIEW_APPROVED`.",
            "enum": [
              "INITIATED",
              "PRE_REVIEW",
              "HOLD",
              "PENDING_SUBMISSION",
              "SUBMITTED",
              "SETTLED",
              "RETURNED",
              "COMPLETED",
              "CANCELED",
              "SCHEDULED",
              "PENDING_RETURN",
              "RETURN_DISHONORED",
              "RETURN_DISHONORED_FUNDS_UNLOCKED",
              "RETURN_CONTESTED",
              "MANUAL_REVIEW",
              "MANUAL_REVIEW_APPROVED"
            ],
            "type": "string"
          },
          "submitted_at": {
            "description": "The timestamp at which the ACH transfer was submitted to the Fed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "trace_number": {
            "description": "The unique number assigned to every ACH entry by an ODFI which identifies that entry within a specific ACH file",
            "type": "string"
          },
          "transaction_type_code": {
            "description": "This is a required code on IAT transfers used to identify reason for payment. Possible values: `ANN`, `BUS`, `DEP`, `LOA`, `MIS`, `MOR`, `PEN`, `REM`, `RLS`, `SAL`, `TAX`.",
            "type": "string"
          },
          "type": {
            "description": "ACH transfer type: `CREDIT` or `DEBIT`. [Learn more]({{ach}}).",
            "type": "string"
          },
          "ultimate_beneficiary_counterparty_id": {
            "description": "ID of the ultimate beneficiary counterparty that will receive the transfer. This is only required on outgoing IAT debits.",
            "type": "string"
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originating counterparty that sent the transfer. This is only required on outgoing IAT credits.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the ACH transfer was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "created_by",
          "updated_at",
          "submitted_at",
          "acknowledged_at",
          "settled_at",
          "completed_at",
          "returned_at",
          "cancelled_at",
          "initiated_at",
          "manual_review_at",
          "return_dishonored_at",
          "return_dishonored_funds_unlocked_at",
          "return_contested_at",
          "status",
          "type",
          "idempotency_key",
          "bank_account_id",
          "account_number_id",
          "counterparty_id",
          "amount",
          "currency_code",
          "description",
          "effective_on",
          "same_day",
          "company_discretionary_data",
          "company_entry_description",
          "company_id",
          "company_name",
          "receiver_name",
          "receiver_id",
          "entry_class_code",
          "allow_overdraft",
          "is_incoming",
          "nsf_deadline",
          "trace_number",
          "odfi_routing_number",
          "return_details",
          "is_on_us",
          "iat",
          "payment_related_info",
          "reversal_pair_transfer_id",
          "notification_of_changes",
          "ultimate_originator_counterparty_id",
          "ultimate_beneficiary_counterparty_id",
          "transaction_type_code",
          "intermediary_financial_institutions",
          "entry_details"
        ],
        "type": "object"
      },
      "ACHTransferListResponse": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of transfers.",
            "items": {
              "$ref": "#/components/schemas/ACHTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "AccountBalancesWithoutCurrency": {
        "properties": {
          "available_amount": {
            "description": "The amount available for immediate use, in the smallest unit of the currency (e.g., cents for `USD`).",
            "format": "int64",
            "type": "integer"
          },
          "holding_amount": {
            "description": "The amount on hold and not available for use, in the smallest unit of the currency (e.g., cents for `USD`).",
            "format": "int64",
            "type": "integer"
          },
          "locked_amount": {
            "description": "The amount locked due to overdraft coverage, in the smallest unit of the currency (e.g., cents for `USD`).",
            "format": "int64",
            "type": "integer"
          },
          "pending_amount": {
            "description": "The amount of pending transactions that have not yet settled, in the smallest unit of the currency (e.g., cents for `USD`).",
            "format": "int64",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "AccountNumber": {
        "description": "An account number that routes incoming payments to a bank account.",
        "properties": {
          "account_number": {
            "description": "The account number",
            "type": "string"
          },
          "bank_account_id": {
            "description": "The bank account this account number is associated with",
            "type": "string"
          },
          "bic": {
            "description": "The BIC (SWIFT code)",
            "type": "string"
          },
          "check_issuing_manual_settlement_required": {
            "description": "Whether manual settlement is required for check issuing",
            "type": "boolean"
          },
          "check_issuing_positive_pay_required": {
            "description": "Whether check issuing positive pay is required",
            "type": "boolean"
          },
          "check_issuing_prefund_required": {
            "description": "Whether prefund is required for check issuing. `null` inherits the platform default.",
            "nullable": true,
            "type": "boolean"
          },
          "created_at": {
            "description": "Timestamp when the account number was created",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for this account number",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the account number",
            "type": "string"
          },
          "routing_number": {
            "description": "The ABA routing number",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "bank_account_id",
          "routing_number",
          "account_number"
        ],
        "type": "object"
      },
      "AddBankAccountOwnerRequest": {
        "properties": {
          "entity_id": {
            "description": "The entity ID to add as owner",
            "type": "string"
          }
        },
        "required": [
          "entity_id"
        ],
        "type": "object"
      },
      "Addenda18": {
        "properties": {
          "branch_country_code": {
            "description": "The two-character country code of the foreign correspondent bank",
            "type": "string"
          },
          "identification_number": {
            "description": "The identification number of the foreign correspondent bank",
            "type": "string"
          },
          "identification_number_qualifier": {
            "description": "The numbering scheme used in the identification number. Possible values are `01` (National Clearing System Number), `02` (BIC Code), or `03` (IBAN).",
            "type": "string"
          },
          "name": {
            "description": "The name of the foreign correspondent bank",
            "type": "string"
          }
        },
        "required": [
          "name",
          "identification_number_qualifier",
          "identification_number",
          "branch_country_code"
        ],
        "type": "object"
      },
      "Address": {
        "description": "A physical address",
        "properties": {
          "city": {
            "description": "City name",
            "maxLength": 255,
            "type": "string"
          },
          "country_code": {
            "description": "Two-letter ISO 3166-1 alpha-2 country code (e.g. `US`)",
            "maxLength": 3,
            "type": "string"
          },
          "line_1": {
            "description": "Street address line 1",
            "maxLength": 255,
            "type": "string"
          },
          "line_2": {
            "description": "Street address line 2",
            "maxLength": 255,
            "type": "string"
          },
          "postal_code": {
            "description": "Postal or ZIP code",
            "maxLength": 24,
            "type": "string"
          },
          "state": {
            "description": "State or province",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "line_1",
          "city",
          "country_code"
        ],
        "type": "object"
      },
      "AdminTransferType": {
        "enum": [
          "credit",
          "debit"
        ],
        "type": "string"
      },
      "AmendedFields": {
        "description": "Fields that may be amended on a SWIFT transfer in response to an amendment request.",
        "properties": {
          "account_number": {
            "description": "The amended beneficiary account number.",
            "type": "string"
          },
          "account_type": {
            "description": "The amended beneficiary account type.",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The amended beneficiary address."
          },
          "beneficiary_name": {
            "description": "The amended beneficiary name.",
            "type": "string"
          },
          "email": {
            "description": "The amended beneficiary email address.",
            "type": "string"
          },
          "intermediary_bank": {
            "description": "The amended BIC of the intermediary bank.",
            "type": "string"
          },
          "legal_id": {
            "description": "The amended beneficiary legal identifier.",
            "type": "string"
          },
          "message_to_beneficiary_bank": {
            "description": "The amended free-form message to the beneficiary bank.",
            "type": "string"
          },
          "phone": {
            "description": "The amended beneficiary phone number.",
            "type": "string"
          },
          "purpose_codes": {
            "description": "The amended list of purpose codes for the transfer.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remittance_beneficiary_reference": {
            "description": "The amended remittance reference identifying the beneficiary's invoice or payment.",
            "type": "string"
          },
          "remittance_general_info": {
            "description": "The amended general remittance information.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AmendmentInfo": {
        "properties": {
          "amended_fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmendedFields"
              }
            ],
            "description": "The fields that were actually amended with their new values.",
            "nullable": true,
            "type": "object"
          },
          "request_summary": {
            "description": "A summary of the amendment request.",
            "nullable": true,
            "type": "string"
          },
          "requested_at": {
            "description": "The timestamp when the amendment was requested.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "requested_fields": {
            "description": "List of field names that were requested to be amended.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sent_at": {
            "description": "The timestamp when the amendment was sent.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "requested_at",
          "request_summary",
          "requested_fields",
          "sent_at",
          "amended_fields"
        ],
        "type": "object"
      },
      "ApplyLoanCollateralRequest": {
        "properties": {
          "amount": {
            "description": "Amount of locked collateral to apply to loan principal, in cents.",
            "minimum": 1,
            "type": "integer"
          },
          "currency_code": {
            "description": "Currency of the collateral application. Must match the loan currency.",
            "type": "string"
          },
          "description": {
            "description": "Description of the collateral application. Maximum: `127` characters.",
            "maxLength": 127,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "ApprovalActionRequest": {
        "description": "Optional request body for the approval decision implied by a clear or hold-cancel endpoint.",
        "properties": {
          "comment": {
            "description": "An optional reviewer comment recorded with the approval or rejection when the held transfer requires approval. Ignored for holds that do not require approval.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "AssociatedPerson": {
        "properties": {
          "ownership_percentage": {
            "description": "Percentage of the business owned by this person, between `0` and `100`.",
            "nullable": true,
            "type": "integer"
          },
          "person_details": {
            "$ref": "#/components/schemas/PersonDetails"
          },
          "person_entity_id": {
            "description": "The entity ID of the person associated with the business.",
            "type": "string"
          },
          "roles": {
            "description": "Roles this person holds at the business. Possible values: `control_person`, `beneficial_owner`, `account_opener`, `grantor`, `trustee`, `beneficiary`, `card_holder`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title_in_business": {
            "description": "Optional job title of this person at the business.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "person_entity_id",
          "roles"
        ],
        "type": "object"
      },
      "AssociatedPersonRequest": {
        "properties": {
          "ownership_percentage": {
            "description": "The percentage of ownership the person holds in the business (0-100).",
            "nullable": true,
            "type": "integer"
          },
          "person_entity_id": {
            "description": "The ID of the person entity to associate with the business entity.",
            "type": "string"
          },
          "roles": {
            "description": "The roles of the person in the business. Possible values: `control_person`, `beneficial_owner`, `account_opener`, `grantor`, `trustee`, `beneficiary`, `card_holder`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title_in_business": {
            "description": "The person's title or role name within the business (e.g. \"Chief Executive Officer\").",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "person_entity_id",
          "roles"
        ],
        "type": "object"
      },
      "BankAccountList": {
        "properties": {
          "bank_accounts": {
            "description": "List of bank accounts with details",
            "items": {
              "$ref": "#/components/schemas/BankAccountWithDetails"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether more bank accounts are available",
            "type": "boolean"
          }
        },
        "required": [
          "bank_accounts",
          "has_more"
        ],
        "type": "object"
      },
      "BankAccountOverdraftAlert": {
        "description": "A bank account overdraft alert is a notification when an account in your platform has been overdrawn and funds have been locked in your reserve accounts, or has been credited and locked funds in your reserve accounts have been released. [Read more](/docs/guides/overdrafts).",
        "properties": {
          "available_balance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OverdraftAlertAmount"
              }
            ],
            "description": "The current available balance of the bank account after this alert."
          },
          "bank_account_id": {
            "description": "ID of the bank account that is overdrawn or credited.",
            "type": "string"
          },
          "overdraft_amount": {
            "allOf": [
              {
                "$ref": "#/components/schemas/OverdraftAlertAmount"
              }
            ],
            "description": "The amount that has been locked or released in the reserve account."
          },
          "reserve_account_id": {
            "description": "ID of the reserve account in which funds are locked or released.",
            "type": "string"
          },
          "transfer_id": {
            "description": "ID of transfer that triggered this alert.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "BankAccountSummary": {
        "properties": {
          "available_balance_close": {
            "description": "Close `available_balance` in cents at the end of `effective_on` in `time_zone`.",
            "format": "int64",
            "type": "integer"
          },
          "available_balance_credit": {
            "description": "Total credit amount in cents applied to `available_balance`. Zero or positive.",
            "format": "int64",
            "type": "integer"
          },
          "available_balance_debit": {
            "description": "Total debit amount in cents applied to `available_balance`. Zero or negative.",
            "format": "int64",
            "type": "integer"
          },
          "currency": {
            "description": "The currency of the balances.",
            "type": "string"
          },
          "effective_on": {
            "description": "Effective date of the summary.",
            "format": "date",
            "type": "string"
          },
          "holding_balance_close": {
            "description": "Close `holding_balance` in cents at the end of `effective_on` in `time_zone`.",
            "format": "int64",
            "type": "integer"
          },
          "holding_balance_credit": {
            "description": "Total credit amount in cents applied to `holding_balance`. Zero or positive.",
            "format": "int64",
            "type": "integer"
          },
          "holding_balance_debit": {
            "description": "Total debit amount in cents applied to `holding_balance`. Zero or negative.",
            "format": "int64",
            "type": "integer"
          },
          "locked_balance_close": {
            "description": "Close `locked_balance` in cents at the end of `effective_on` in `time_zone`.",
            "format": "int64",
            "type": "integer"
          },
          "locked_balance_credit": {
            "description": "Total credit amount in cents applied to `locked_balance`. Zero or positive.",
            "format": "int64",
            "type": "integer"
          },
          "locked_balance_debit": {
            "description": "Total debit amount in cents applied to `locked_balance`. Zero or negative.",
            "format": "int64",
            "type": "integer"
          },
          "pending_balance_close": {
            "description": "Close `pending_balance` in cents at the end of `effective_on` in `time_zone`.",
            "format": "int64",
            "type": "integer"
          },
          "pending_balance_credit": {
            "description": "Total credit amount in cents applied to `pending_balance`. Zero or positive.",
            "format": "int64",
            "type": "integer"
          },
          "pending_balance_debit": {
            "description": "Total debit amount in cents applied to `pending_balance`. Zero or negative.",
            "format": "int64",
            "type": "integer"
          },
          "time_zone": {
            "description": "Time zone of `effective_on` to decide day boundaries. You can set your platform reporting time zone in Platform Settings on Dashboard.",
            "type": "string"
          },
          "transaction_count": {
            "description": "Total number of transactions on the day of `effective_on`.",
            "type": "integer"
          }
        },
        "required": [
          "effective_on",
          "time_zone",
          "currency",
          "transaction_count",
          "available_balance_credit",
          "available_balance_debit",
          "available_balance_close",
          "pending_balance_credit",
          "pending_balance_debit",
          "pending_balance_close",
          "locked_balance_credit",
          "locked_balance_debit",
          "locked_balance_close",
          "holding_balance_credit",
          "holding_balance_debit",
          "holding_balance_close"
        ],
        "type": "object"
      },
      "BankAccountSummaryHistory": {
        "properties": {
          "history": {
            "description": "Summary history entries",
            "items": {
              "$ref": "#/components/schemas/BankAccountSummary"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of the bank account",
            "type": "string"
          }
        },
        "required": [
          "id",
          "history"
        ],
        "type": "object"
      },
      "BankAccountWithDetails": {
        "description": "A bank account is the object in the Column data model that has the ability to hold, send, and receive funds. Bank accounts are children of entities. An entity can have multiple bank accounts. Bank accounts can have one or multiple account numbers. Read about bank accounts in our data model section for more information.",
        "properties": {
          "balances": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AccountBalancesWithoutCurrency"
              }
            ],
            "description": "Lists all possible balance amounts for an account represented in the smallest unit of the currency.",
            "nullable": true,
            "type": "object"
          },
          "bic": {
            "description": "The SWIFT BIC code for this bank account for international wire payments.",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp at which the bank account was created.",
            "format": "date-time",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter ISO 4217 currency code for the account and its balances.",
            "type": "string"
          },
          "default_account_number": {
            "description": "The externally facing default account number tied to this bank account.",
            "type": "string"
          },
          "default_account_number_id": {
            "description": "The default account number ID tied to this account.",
            "type": "string"
          },
          "description": {
            "description": "A name for the bank account (minimum: 3 characters)",
            "type": "string"
          },
          "display_name": {
            "description": "The display name for the bank account. Display name is an account nickname used on Column's Dashboard.",
            "type": "string"
          },
          "fdic_insurance": {
            "description": "The type of FDIC insurance offered on this account. The default value is `standard`.",
            "type": "string"
          },
          "id": {
            "description": "Unique ID for this account.",
            "type": "string"
          },
          "interest_config_id": {
            "description": "The ID of interest config for this account. If it is not set, the default interest config of your platform will be used for this account. Please contact our support team for more details.",
            "type": "string"
          },
          "is_interest_bearing": {
            "description": "Whether your platform needs to accrue and pay interest to this account. Please contact our support team for more details.",
            "type": "boolean"
          },
          "is_overdraftable": {
            "description": "Whether the account can be overdrafted, must include an `overdraft_reserve_account_id`",
            "type": "boolean"
          },
          "overdraft_reserve_account_id": {
            "description": "The overdraft reserve account that this account is linked to. If `is_overdraftable`: `true` then this field is required.",
            "type": "string"
          },
          "owners": {
            "description": "List of `entity_id`'s which are tied to this bank account",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "routing_number": {
            "description": "The 9-digit ABA routing number for this bank account.",
            "type": "string"
          },
          "search_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchMetadata"
              }
            ],
            "nullable": true,
            "type": "object"
          },
          "status": {
            "description": "The current status of the bank account. Can be `open`, `closed`, or `frozen`.",
            "enum": [
              "open",
              "closed",
              "frozen"
            ],
            "type": "string"
          },
          "type": {
            "description": "Bank Account type. Can be `CHECKING`, `OVERDRAFT_RESERVE`, `PROGRAM_RESERVE`, or `NETWORK_SETTLEMENT_ACCOUNT`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "description",
          "owners",
          "default_account_number_id",
          "default_account_number",
          "routing_number",
          "bic",
          "balances",
          "currency_code",
          "created_at",
          "type",
          "is_overdraftable",
          "overdraft_reserve_account_id",
          "is_interest_bearing",
          "interest_config_id",
          "fdic_insurance",
          "status"
        ],
        "type": "object"
      },
      "BookTransfer": {
        "description": "The book transfer object is the current state of a single book transfer initiated in Column. A book transfer is the movement of funds between two bank accounts under your platform, and once initiated, happen instantaneously 24/7.",
        "properties": {
          "allow_overdraft": {
            "description": "Allows the account to go negative for an outgoing transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between sender and receiver accounts. e.g. $1.75 would be represented by 175.",
            "format": "int64",
            "type": "integer"
          },
          "created_at": {
            "description": "The timestamp at which the transfer request is created",
            "format": "date-time",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer visible in account statements",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the book transfer",
            "type": "string"
          },
          "receiver_account_number_id": {
            "description": "ID of the account number that will receive the transfer",
            "type": "string"
          },
          "receiver_bank_account_id": {
            "description": "ID of the bank account that will receive the transfer",
            "type": "string"
          },
          "sender_account_number_id": {
            "description": "ID of the account number that is sending the transfer",
            "type": "string"
          },
          "sender_bank_account_id": {
            "description": "ID of the bank account that is sending the transfer",
            "type": "string"
          },
          "status": {
            "description": "The current status of the book transfer. Possible values: `REJECTED`, `COMPLETED`, `HOLD`, and `CANCELED`.",
            "enum": [
              "COMPLETED",
              "REJECTED",
              "HOLD",
              "CANCELED"
            ],
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the book transfer was updated (typically a status update)",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "idempotency_key",
          "sender_bank_account_id",
          "sender_account_number_id",
          "receiver_bank_account_id",
          "receiver_account_number_id",
          "amount",
          "currency_code",
          "description",
          "status",
          "allow_overdraft"
        ],
        "type": "object"
      },
      "BookTransferList": {
        "properties": {
          "has_more": {
            "description": "Whether more book transfers are available",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of book transfers",
            "items": {
              "$ref": "#/components/schemas/BookTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "BookTransferMonitoringDetailsRequest": {
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true,
            "type": "object"
          },
          "authorization_method": {
            "description": "The method used to authorize the book transfer.",
            "type": "string"
          },
          "internal_transfer_type": {
            "description": "The type of internal transfer.",
            "type": "string"
          },
          "merchant_category_code": {
            "description": "The merchant category code (MCC) associated with this transfer.",
            "type": "string"
          },
          "merchant_name": {
            "description": "The merchant name associated with this transfer.",
            "type": "string"
          },
          "sender_name": {
            "description": "Name of the sender initiating the transfer.",
            "type": "string"
          },
          "statement_description": {
            "description": "Description that will appear on the account statement.",
            "type": "string"
          },
          "website": {
            "description": "Website associated with the transfer originator.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "BusinessDetails": {
        "properties": {
          "account_usage": {
            "description": "Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation.",
            "nullable": true,
            "type": "object"
          },
          "business_name": {
            "description": "Legal Business Name",
            "type": "string"
          },
          "countries_of_operation": {
            "description": "Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., `US`, `FR`, `UK`, `DE`, ... ) are allowed. Only required for a root entity.",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "country_of_incorporation": {
            "description": "ISO 3166-1 Alpha-2 country code of the country in which the business is incorporated.",
            "type": "string"
          },
          "date_of_incorporation": {
            "description": "Date the business was incorporated (YYYY-MM-DD).",
            "type": "string"
          },
          "dba_name": {
            "description": "\"Doing business as\" name for the business entity, when different from the legal business name.",
            "type": "string"
          },
          "description": {
            "description": "Description of the business entity. Only required for a root entity.",
            "nullable": true,
            "type": "string"
          },
          "ein": {
            "description": "Employer Identification Number (Tax ID). This may be SSN for a sole proprietorship.",
            "type": "string"
          },
          "ein_pending": {
            "description": "Indicates whether the business has applied for an EIN but has not yet received it.",
            "type": "boolean"
          },
          "end_customer_type": {
            "description": "Type of end customer the business serves. Accepts a free-form string.",
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "type": "string"
          },
          "expected_use_of_funds": {
            "description": "Expected use of funds for the business entity. Accepts a free-form string.",
            "type": "string"
          },
          "has_virtual_address": {
            "description": "Indicates whether the business operates from a virtual address.",
            "type": "boolean"
          },
          "industry": {
            "description": "Industry in which the business entity operates.",
            "type": "string"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "type": "boolean"
          },
          "legal_type": {
            "description": "Type of business. Permitted values are `limited-partnership`, `trust`, `sole-proprietorship`, `corporation`, `llc`, `general-partnership`, `professional-association`, `government`, `non-profit`, `other`, `pic-piv`, `spv`, `irrevocable_trust`, `revocable_trust`.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the business expects to make international payments.",
            "type": "boolean"
          },
          "payment_volumes": {
            "description": "Expected payment volumes. Only required for a root entity.",
            "nullable": true,
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "nullable": true,
            "type": "string"
          },
          "registration_id": {
            "description": "Registration ID. EIN or Registration ID is required.",
            "nullable": true,
            "type": "object"
          },
          "source_of_funds": {
            "description": "Source of funds for the business entity.",
            "type": "string"
          },
          "state_of_incorporation": {
            "description": "State in which the business is incorporated. Only postal abbreviations (e.g. `AL`, `CA`, `DE`, ...) are allowed. Only required for a root entity.",
            "type": "string"
          },
          "website": {
            "description": "Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.",
            "type": "string"
          },
          "year_of_incorporation": {
            "description": "Year in which the business entity was incorporated. Only required for a root entity.",
            "type": "string"
          }
        },
        "required": [
          "ein",
          "business_name",
          "website",
          "industry",
          "legal_type"
        ],
        "type": "object"
      },
      "CancelInternationalWireRequest": {
        "properties": {
          "cancellation_reason": {
            "description": "The reason for canceling the transfer. Possible values: `incorrect_amount`, `incorrect_currency`, `requested_by_originator`, `duplicate`, `fraud`, `tech_failure`, `payment_not_justified`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardAuthenticationDecisionRequest": {
        "properties": {
          "channel": {
            "description": "The transaction channel supplied by the 3DS network",
            "nullable": true,
            "type": "string"
          },
          "merchant_challenge_indicator": {
            "description": "The raw EMV 3DS merchant challenge indicator",
            "nullable": true,
            "type": "string"
          },
          "message_category": {
            "description": "The 3DS message category",
            "enum": [
              "payment",
              "non_payment"
            ],
            "nullable": true,
            "type": "string"
          },
          "network_risk_score": {
            "description": "The two-character risk score supplied by the 3DS network",
            "nullable": true,
            "type": "string"
          },
          "three_ds_attempt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardAuthenticationDecisionThreeDSAttempt"
              }
            ],
            "description": "The 3DS authentication attempt being evaluated"
          }
        },
        "required": [
          "three_ds_attempt"
        ],
        "type": "object"
      },
      "CardAuthenticationDecisionResponse": {
        "properties": {
          "decision": {
            "description": "The authentication decision. Possible values: frictionless_approve, challenge, decline_authentication",
            "enum": [
              "frictionless_approve",
              "challenge",
              "decline_authentication"
            ],
            "type": "string"
          },
          "decline_reason": {
            "description": "The optional decline reason. When omitted for a declined authentication, Column defaults to suspected_fraud",
            "enum": [
              "suspected_fraud",
              "transaction_not_permitted"
            ],
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "decision"
        ],
        "type": "object"
      },
      "CardAuthenticationDecisionThreeDSAttempt": {
        "description": "A 3D Secure authentication attempt included in an authentication decision request",
        "properties": {
          "acs_transaction_id": {
            "description": "The Access Control Server (ACS) transaction identifier",
            "type": "string"
          },
          "amount": {
            "description": "The transaction amount in the smallest unit of the currency (e.g., cents for `USD`)",
            "example": 12345,
            "format": "int64",
            "type": "integer"
          },
          "attempt_count": {
            "description": "The number of authentication attempts made",
            "type": "integer"
          },
          "attempt_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDSAttemptStatus"
              }
            ],
            "description": "The current status of the 3DS authentication attempt"
          },
          "card_account_id": {
            "description": "The card account associated with this 3DS attempt",
            "example": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cacc_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_id": {
            "description": "The card associated with this 3DS attempt",
            "example": "card_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^card_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "challenged_at": {
            "description": "Timestamp when the challenge was presented to the cardholder",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "challenges_presented": {
            "description": "List of challenge types that were presented to the cardholder",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "chosen_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDSChallengeType"
              }
            ],
            "description": "The challenge type selected by the cardholder",
            "nullable": true,
            "type": "string"
          },
          "completed_at": {
            "description": "Timestamp when the authentication was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp when the 3DS attempt was created",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The ISO 4217 currency code for the transaction",
            "example": "USD",
            "maxLength": 3,
            "minLength": 3,
            "type": "string"
          },
          "ds_transaction_id": {
            "description": "The Directory Server (DS) transaction identifier",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the 3DS attempt",
            "example": "tdsa_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^tdsa_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "merchant_category_code": {
            "description": "The Merchant Category Code (MCC)",
            "example": "5411",
            "maxLength": 4,
            "minLength": 4,
            "nullable": true,
            "type": "string"
          },
          "merchant_country_code": {
            "description": "The ISO 3166-1 alpha-2 country code of the merchant",
            "example": "US",
            "maxLength": 2,
            "minLength": 2,
            "nullable": true,
            "type": "string"
          },
          "merchant_name": {
            "description": "The name of the merchant",
            "nullable": true,
            "type": "string"
          },
          "merchant_url": {
            "description": "The URL of the merchant",
            "nullable": true,
            "type": "string"
          },
          "outcome_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDSOutcomeReason"
              }
            ],
            "description": "The reason for the authentication outcome",
            "nullable": true,
            "type": "string"
          },
          "three_ds_message_version": {
            "description": "The 3D Secure protocol message version",
            "type": "string"
          },
          "updated_at": {
            "description": "Timestamp when the 3DS attempt was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "card_account_id",
          "card_id",
          "attempt_status",
          "attempt_count",
          "acs_transaction_id",
          "ds_transaction_id",
          "three_ds_message_version",
          "currency",
          "amount",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "CardAuthorizationDecisionRequest": {
        "properties": {
          "available_balance": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmount"
              }
            ],
            "description": "The card account's available balance when Column requests the realtime authorization decision. When Column limits the proposed event to available funds, this is the maximum amount the platform may partially approve"
          },
          "card_transaction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransaction"
              }
            ],
            "description": "The card transaction being authorized. For new transactions, this will be a new transaction object. For incremental authorizations or reauthorizations, this will contain the existing card transaction"
          },
          "proposed_event": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEvent"
              }
            ],
            "description": "The proposed card transaction event that Column is requesting a decision on. This event will be appended to the card transaction if approved"
          }
        },
        "required": [
          "card_transaction",
          "proposed_event"
        ],
        "type": "object"
      },
      "CardAuthorizationDecisionResponse": {
        "properties": {
          "decision": {
            "description": "The authorization decision. Possible values: approve, partially_approve, decline",
            "enum": [
              "approve",
              "partially_approve",
              "decline"
            ],
            "type": "string"
          },
          "decline_reason": {
            "description": "Optional reason for the decline. Providing a decline reason helps merchants understand why the transaction was declined and can reduce network fees. If not specified, Column will return a generic do not honor response code. Possible values: insufficient_funds, suspected_fraud, stop_payment, require_3ds",
            "enum": [
              "insufficient_funds",
              "suspected_fraud",
              "stop_payment",
              "require_3ds"
            ],
            "nullable": true,
            "type": "string"
          },
          "partially_approve_amount": {
            "description": "The amount to partially approve in the smallest unit of the currency (e.g., cents for USD). Only applicable when decision is partially_approve. The request must support partial approvals (check can_support_partial_approvals in the point of sale details). If partial approval is not supported, the transaction will be declined",
            "example": 2500,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "decision"
        ],
        "type": "object"
      },
      "CardAuthorizationPolicyEvaluationDetail": {
        "description": "The evaluation result of a single authorization policy",
        "properties": {
          "card_authorization_policy_id": {
            "description": "The ID of the card authorization policy",
            "example": "caup_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^caup_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_authorization_policy_version_id": {
            "description": "The ID of the card authorization policy version",
            "example": "cauv_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cauv_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "decision": {
            "description": "The policy evaluation decision. Possible values: `passed`, `failed`, `skipped`",
            "enum": [
              "passed",
              "failed",
              "skipped"
            ],
            "type": "string"
          },
          "decision_reason": {
            "description": "The reason the policy failed. Only set when decision is failed",
            "nullable": true,
            "type": "string"
          },
          "owner": {
            "description": "The owner of the policy. Possible values: `column`, `platform_owner`",
            "enum": [
              "column",
              "platform_owner"
            ],
            "type": "string"
          },
          "scope": {
            "description": "The scope of the policy. Possible values: `card_program`, `card_account`, `card`",
            "enum": [
              "card_program",
              "card_account",
              "card"
            ],
            "type": "string"
          }
        },
        "required": [
          "scope",
          "owner",
          "card_authorization_policy_id",
          "card_authorization_policy_version_id",
          "decision"
        ],
        "type": "object"
      },
      "CardTransaction": {
        "description": "The card transaction object represents a transaction made with a card.",
        "properties": {
          "authentication_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionAuthenticationDetails"
              }
            ],
            "description": "3D Secure authentication details"
          },
          "authorization_expires_at": {
            "description": "The authorization expiration date of the card transaction. Funds will be released from any authorization after this date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "card_acceptor_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionCardAcceptorDetails"
              }
            ],
            "description": "Information about the entity that accepted the card"
          },
          "card_account_id": {
            "description": "The ID of the card account",
            "example": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cacc_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_id": {
            "description": "The ID of the card",
            "example": "card_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^card_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_program_id": {
            "description": "The ID of the card program",
            "example": "cpgm_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cpgm_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_token_id": {
            "description": "The card token used for this transaction, if applicable.",
            "example": "ctkn_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^ctkn_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "cardholder_verification_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionCardholderVerificationDetails"
              }
            ],
            "description": "Cardholder identity verification results for name, email, phone, and address"
          },
          "created_at": {
            "description": "The creation date of the card transaction",
            "format": "date-time",
            "type": "string"
          },
          "events": {
            "description": "The events associated with the card transaction",
            "items": {
              "$ref": "#/components/schemas/CardTransactionEvent"
            },
            "type": "array"
          },
          "fee_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionFeeDetails"
              }
            ],
            "description": "Fee-related transaction details"
          },
          "id": {
            "description": "The ID of the card transaction",
            "example": "ctxn_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^ctxn_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "network_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionNetworkDetails"
              }
            ],
            "description": "Identifiers used by the associated card network"
          },
          "network_transaction_id": {
            "description": "The transaction ID assigned by the card network",
            "nullable": true,
            "type": "string"
          },
          "original_card_transaction_id": {
            "description": "The ID of the original card transaction referenced by the transaction",
            "example": "ctxn_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^ctxn_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "point_of_sale_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionPointOfSaleDetails"
              }
            ],
            "description": "The point of sale details"
          },
          "recurring_transaction_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionRecurringTransactionDetails"
              }
            ],
            "description": "Recurring transaction details"
          },
          "total_amounts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmounts"
              }
            ],
            "description": "The total transaction amounts (simple sum of all transaction event amounts)"
          },
          "transaction_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTransactionDetails"
              }
            ],
            "description": "Additional transaction-specific level 3 details (lodging, account funding, original credit, invoice, travel, fleet)"
          },
          "type": {
            "description": "The type of the card transaction. Possible values: `purchase`, `refund`, `original_credit`, `account_verification`, `balance_inquiry`",
            "enum": [
              "purchase",
              "refund",
              "original_credit",
              "account_verification",
              "balance_inquiry"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "card_program_id",
          "card_account_id",
          "card_id",
          "total_amounts",
          "created_at"
        ],
        "type": "object"
      },
      "CardTransactionAccountFundingData": {
        "properties": {
          "payment_facilitator_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Payment facilitator address",
            "nullable": true,
            "type": "object"
          },
          "payment_facilitator_name": {
            "description": "Payment facilitator name",
            "nullable": true,
            "type": "string"
          },
          "purpose_of_payment": {
            "description": "The purpose of payment",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The account funding type",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionAuthenticationDetails": {
        "properties": {
          "liability_shifted": {
            "description": "Whether liability was shifted to the issuer via 3DS",
            "type": "boolean"
          },
          "three_ds_attempt_id": {
            "description": "The 3DS attempt ID",
            "example": "tdsa_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^tdsa_[0-9A-Za-z]{27}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionCardAcceptorDetails": {
        "properties": {
          "acquiring_institution_country_code": {
            "description": "The acquiring institution country code",
            "example": "US",
            "pattern": "^[A-Z]{2}$",
            "type": "string"
          },
          "acquiring_institution_identifier": {
            "description": "The acquiring institution identifier",
            "type": "string"
          },
          "city": {
            "description": "The city of the card acceptor",
            "type": "string"
          },
          "country_code": {
            "description": "The country code of the card acceptor",
            "example": "US",
            "pattern": "^[A-Z]{2}$",
            "type": "string"
          },
          "forwarding_institution_identifier": {
            "description": "The forwarding institution identifier",
            "type": "string"
          },
          "identifier": {
            "description": "The network-given identifier of the card acceptor",
            "type": "string"
          },
          "merchant_category_code": {
            "description": "The merchant category code (MCC)",
            "type": "string"
          },
          "name": {
            "description": "The name of the card acceptor",
            "type": "string"
          },
          "terminal_identifier": {
            "description": "The card acceptor terminal identifier",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionCardholderVerificationDetails": {
        "properties": {
          "email": {
            "description": "The cardholder's email",
            "nullable": true,
            "type": "string"
          },
          "email_verification_status": {
            "description": "Email verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "first_name": {
            "description": "The cardholder's first name",
            "nullable": true,
            "type": "string"
          },
          "first_name_verification_status": {
            "description": "First name verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "last_name": {
            "description": "The cardholder's last name",
            "nullable": true,
            "type": "string"
          },
          "last_name_verification_status": {
            "description": "Last name verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "middle_name": {
            "description": "The cardholder's middle name",
            "nullable": true,
            "type": "string"
          },
          "middle_name_verification_status": {
            "description": "Middle name verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "phone_number": {
            "description": "The cardholder's phone number",
            "nullable": true,
            "type": "string"
          },
          "phone_number_verification_status": {
            "description": "Phone number verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "postal_code": {
            "description": "The cardholder's postal code",
            "nullable": true,
            "type": "string"
          },
          "postal_code_verification_status": {
            "description": "Postal code verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          },
          "street_address": {
            "description": "The cardholder's street address",
            "nullable": true,
            "type": "string"
          },
          "street_address_verification_status": {
            "description": "Street address verification status",
            "enum": [
              "verified",
              "invalid",
              "not_provided",
              "not_required",
              "not_verified"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionEvent": {
        "description": "The card transaction event object represents a specific event within the lifecycle of a card transaction (e.g., authorization, clear, refund).",
        "properties": {
          "amounts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmounts"
              }
            ],
            "description": "The amounts associated with the event"
          },
          "authentication_attempt_id": {
            "description": "The authentication attempt ID",
            "example": "caat_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^caat_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "authorization_expires_at": {
            "description": "The authorization expiration date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "card_account_id": {
            "description": "The ID of the card account",
            "example": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cacc_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_id": {
            "description": "The ID of the card",
            "example": "card_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^card_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_program_id": {
            "description": "The ID of the card program",
            "example": "cpgm_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cpgm_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_token_id": {
            "description": "The card token used for this transaction event, if applicable.",
            "example": "ctkn_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^ctkn_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "created_at": {
            "description": "The creation date of the card transaction event",
            "format": "date-time",
            "type": "string"
          },
          "decisioning_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventDecisioningDetails"
              }
            ],
            "description": "Authorization decisioning details"
          },
          "event_type": {
            "description": "The type of the card transaction event. Possible values: `financial`, `financial_reversal`, `authorization`, `authorization_reversal`, `authorization_expiration`, `authorization_completion`, `incremental_authorization`, `incremental_authorization_reversal`, `reauthorization`, `reauthorization_reversal`, `clear`, `clear_reversal`, `original_credit`, `original_credit_reversal`, `refund_authorization`, `refund_authorization_reversal`",
            "enum": [
              "financial",
              "financial_reversal",
              "authorization",
              "authorization_reversal",
              "authorization_expiration",
              "authorization_completion",
              "incremental_authorization",
              "incremental_authorization_reversal",
              "reauthorization",
              "reauthorization_reversal",
              "clear",
              "clear_reversal",
              "original_credit",
              "original_credit_reversal",
              "refund_authorization",
              "refund_authorization_reversal"
            ],
            "type": "string"
          },
          "id": {
            "description": "The ID of the card transaction event",
            "example": "ctxe_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^ctxe_[0-9A-Za-z]{27}$",
            "type": "string"
          }
        },
        "required": [
          "id",
          "card_id",
          "card_account_id",
          "card_program_id",
          "event_type",
          "amounts",
          "created_at"
        ],
        "type": "object"
      },
      "CardTransactionEventAmount": {
        "properties": {
          "amount": {
            "description": "The amount in the smallest unit of the currency",
            "example": 12345,
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The currency code (e.g., `USD`)",
            "example": "USD",
            "pattern": "^[A-Z]{3}$",
            "type": "string"
          },
          "fx_rate": {
            "description": "The foreign exchange rate (if applicable)",
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "required": [
          "currency_code",
          "amount"
        ],
        "type": "object"
      },
      "CardTransactionEventAmounts": {
        "properties": {
          "cardholder_authorized": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount authorized and being held in the cardholder's currency"
          },
          "cardholder_requested": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount requested by the merchant in the cardholder's currency"
          },
          "cardholder_settled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount settled in the cardholder's currency"
          },
          "merchant_authorized": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount authorized and being held in the merchant's currency"
          },
          "merchant_requested": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount requested by the merchant in the merchant's currency"
          },
          "merchant_settled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionEventAmount"
              }
            ],
            "description": "The amount settled in the merchant's currency"
          }
        },
        "required": [
          "merchant_requested",
          "merchant_settled",
          "merchant_authorized",
          "cardholder_requested",
          "cardholder_authorized",
          "cardholder_settled"
        ],
        "type": "object"
      },
      "CardTransactionEventDecisioningDetails": {
        "properties": {
          "auth_code": {
            "description": "The authorization code",
            "nullable": true,
            "type": "string"
          },
          "card_authorization_policy_decision": {
            "description": "The aggregate authorization policy decision. Possible values: `passed`, `failed`, `skipped`",
            "enum": [
              "passed",
              "failed",
              "skipped"
            ],
            "nullable": true,
            "type": "string"
          },
          "card_authorization_policy_decision_reason": {
            "description": "The reason the aggregate authorization policy decision was made. Only set when the policy decision is failed",
            "nullable": true,
            "type": "string"
          },
          "card_authorization_policy_evaluations": {
            "description": "Per-policy evaluation results showing the outcome of each authorization policy",
            "items": {
              "$ref": "#/components/schemas/CardAuthorizationPolicyEvaluationDetail"
            },
            "type": "array"
          },
          "decision": {
            "description": "The authorization decision. Possible values: `undecided`, `approved`, `partially_approved`, `declined`",
            "enum": [
              "undecided",
              "approved",
              "partially_approved",
              "declined"
            ],
            "type": "string"
          },
          "decision_reason": {
            "description": "The reason the decision was made",
            "enum": [
              "approved",
              "partially_approved",
              "insufficient_funds",
              "suspected_fraud",
              "realtime_authorization_request_timeout",
              "realtime_authorization_connection_error",
              "realtime_authorization_invalid_response",
              "manual_override",
              "generic_decline",
              "error",
              "realtime_authorization_endpoint_missing",
              "invalid_transaction",
              "account_closed",
              "account_blocked",
              "card_lost",
              "card_stolen",
              "card_expired",
              "invalid_merchant",
              "exceeds_approval_amount_limit",
              "invalid_verification_code",
              "invalid_cvv",
              "invalid_cvv2",
              "missing_or_invalid_pin",
              "account_verification_succeeded",
              "account_verification_and_anticipated_amount_succeeded",
              "account_verification_succeeded_unsupported_amount",
              "stop_payment",
              "invalid_account_type_savings",
              "invalid_account_type_checking",
              "invalid_account_type_credit",
              "three_ds_authentication_required",
              "invalid_expiration",
              "compliance_decline",
              "card_paused",
              "pin_cryptographic_error",
              "invalid_amount",
              "pending"
            ],
            "type": "string"
          },
          "decision_source": {
            "description": "The party that made the authorization decision. Possible values: `card_network`, `column`, `platform_owner`",
            "enum": [
              "card_network",
              "column",
              "platform_owner"
            ],
            "type": "string"
          },
          "realtime_authorization_amount": {
            "description": "The amount returned by the platform's realtime authorization endpoint, in the smallest unit of the currency",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "realtime_authorization_decision": {
            "description": "The decision returned by the platform's realtime authorization endpoint. Possible values: approve, partially_approve, decline",
            "nullable": true,
            "type": "string"
          },
          "realtime_authorization_decision_reason": {
            "description": "The decline reason returned by the platform's realtime authorization endpoint",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "decision_source",
          "decision",
          "decision_reason"
        ],
        "type": "object"
      },
      "CardTransactionFeeDetails": {
        "description": "Fee-related transaction details including the consolidated transaction fee amount when available.",
        "properties": {
          "transaction_fee_amount": {
            "description": "The transaction fee amount in the smallest unit of the currency",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "transaction_fee_currency": {
            "description": "The currency code of the transaction fee",
            "example": "USD",
            "nullable": true,
            "pattern": "^[A-Z]{3}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionFleetData": {
        "properties": {
          "continuation_data": {
            "description": "Raw continuation record payload segments",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "fleet_fuel_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionFleetFuelProductInfo"
              }
            ],
            "description": "Fleet fuel product information",
            "nullable": true,
            "type": "object"
          },
          "item_sequence_number": {
            "description": "Item sequence number",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "message_identifier": {
            "description": "Record message identifier",
            "nullable": true,
            "type": "string"
          },
          "motor_fuel_information": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionFleetFuelProductInfo"
              }
            ],
            "description": "Motor fuel product information",
            "nullable": true,
            "type": "object"
          },
          "motor_fuel_service_type": {
            "description": "Motor fuel service type",
            "nullable": true,
            "type": "string"
          },
          "odometer": {
            "description": "Odometer reading",
            "nullable": true,
            "type": "string"
          },
          "prompted_data": {
            "description": "Fleet prompted data captured at the point of interaction",
            "items": {
              "$ref": "#/components/schemas/CardTransactionFleetPromptedData"
            },
            "nullable": true,
            "type": "array"
          },
          "pump_number": {
            "description": "Pump number",
            "nullable": true,
            "type": "string"
          },
          "tax_breakdown": {
            "description": "Fleet tax breakdown",
            "items": {
              "$ref": "#/components/schemas/CardTransactionFleetTaxComponent"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "CardTransactionFleetFuelProductInfo": {
        "properties": {
          "product_code": {
            "description": "Fuel product code",
            "nullable": true,
            "type": "string"
          },
          "quantity": {
            "description": "Fuel quantity",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "sale_amount": {
            "description": "Fuel sale amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "unit_of_measure": {
            "description": "Fuel unit of measure",
            "nullable": true,
            "type": "string"
          },
          "unit_price": {
            "description": "Fuel unit price",
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "CardTransactionFleetPromptedData": {
        "properties": {
          "prompt_code": {
            "description": "Prompt code",
            "nullable": true,
            "type": "string"
          },
          "value": {
            "description": "Prompted value",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionFleetTaxComponent": {
        "properties": {
          "amount": {
            "description": "Tax amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "exemption_status": {
            "description": "Exemption status for this tax component",
            "nullable": true,
            "type": "boolean"
          },
          "tax_type": {
            "description": "Tax component type",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionInvoiceLineItemData": {
        "properties": {
          "commodity_code": {
            "description": "Commodity code",
            "nullable": true,
            "type": "string"
          },
          "continuation_data": {
            "description": "Raw continuation record payload segments",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "type": "array"
          },
          "debit_credit_indicator": {
            "description": "Debit or credit indicator",
            "nullable": true,
            "type": "string"
          },
          "discount_amount": {
            "description": "Discount amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "discount_indicator": {
            "description": "Discount indicator",
            "nullable": true,
            "type": "string"
          },
          "extended_item_amount": {
            "description": "Extended item amount",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "extended_item_description": {
            "description": "Extended item description",
            "nullable": true,
            "type": "string"
          },
          "fleet_extended_item_amount": {
            "description": "Fleet extended item amount",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "fleet_item_description": {
            "description": "Fleet item description",
            "nullable": true,
            "type": "string"
          },
          "fleet_item_quantity": {
            "description": "Fleet item quantity",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "fleet_item_unit_of_measure": {
            "description": "Fleet item unit of measure",
            "nullable": true,
            "type": "string"
          },
          "fleet_product_code": {
            "description": "Fleet product code",
            "nullable": true,
            "type": "string"
          },
          "item_description": {
            "description": "Item description",
            "nullable": true,
            "type": "string"
          },
          "item_sequence_number": {
            "description": "Item sequence number",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "line_item_date": {
            "description": "Line item date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "line_item_total": {
            "description": "Line item total in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "message_identifier": {
            "description": "Record message identifier",
            "nullable": true,
            "type": "string"
          },
          "order_date": {
            "description": "Order date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "product_code": {
            "description": "Product code",
            "nullable": true,
            "type": "string"
          },
          "quantity": {
            "description": "Item quantity",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "unit_cost": {
            "description": "Unit cost",
            "format": "double",
            "nullable": true,
            "type": "number"
          },
          "unit_of_measure": {
            "description": "Unit of measure",
            "nullable": true,
            "type": "string"
          },
          "vat_tax_amount": {
            "description": "VAT tax amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "vat_tax_rate": {
            "description": "VAT tax rate",
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "type": "object"
      },
      "CardTransactionInvoiceSummaryData": {
        "properties": {
          "acceptor_reference_number": {
            "description": "Acceptor reference number",
            "nullable": true,
            "type": "string"
          },
          "acceptor_tax_id": {
            "description": "Acceptor tax ID",
            "nullable": true,
            "type": "string"
          },
          "acceptor_type": {
            "description": "Acceptor type",
            "nullable": true,
            "type": "string"
          },
          "account_reference": {
            "description": "Account reference",
            "nullable": true,
            "type": "string"
          },
          "authorization_code": {
            "description": "Authorization code",
            "nullable": true,
            "type": "string"
          },
          "destination_country_code": {
            "description": "Destination country code",
            "nullable": true,
            "type": "string"
          },
          "destination_postal_code": {
            "description": "Destination postal code",
            "nullable": true,
            "type": "string"
          },
          "discount_amount": {
            "description": "Discount amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "duty_amount": {
            "description": "Duty amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "freight_shipping_amount": {
            "description": "Freight or shipping amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "general_tax_amount": {
            "description": "General tax amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "invoice_level_discount_treatment_code": {
            "description": "Invoice level discount treatment code",
            "nullable": true,
            "type": "string"
          },
          "item_sequence_number": {
            "description": "Item sequence number",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "message_identifier": {
            "description": "Record message identifier",
            "nullable": true,
            "type": "string"
          },
          "order_date": {
            "description": "Order date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "ship_from_postal_code": {
            "description": "Ship-from postal code",
            "nullable": true,
            "type": "string"
          },
          "tax_treatments_code": {
            "description": "Tax treatments code",
            "nullable": true,
            "type": "string"
          },
          "vat_invoice_reference_number": {
            "description": "Unique VAT invoice reference number",
            "nullable": true,
            "type": "string"
          },
          "vat_tax_amount_freight_shipping": {
            "description": "VAT tax amount on freight or shipping in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CardTransactionLodgingData": {
        "properties": {
          "arrival_date": {
            "description": "Lodging arrival date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "daily_room_rate": {
            "description": "The daily room rate in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "departure_date": {
            "description": "Lodging departure date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "folio_cash_advances": {
            "description": "Folio cash advances in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "folio_number": {
            "description": "The folio number",
            "nullable": true,
            "type": "string"
          },
          "food_beverage_charges": {
            "description": "Food and beverage charges in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "prepaid_expenses": {
            "description": "Prepaid expenses in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "room_nights": {
            "description": "Number of room nights",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_charged": {
            "description": "Total charged lodging amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_charges": {
            "description": "Total lodging charges in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_non_room_charges": {
            "description": "Total non-room lodging charges in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_room_tax": {
            "description": "Total room tax in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_tax": {
            "description": "The total tax in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "CardTransactionNetworkDetails": {
        "properties": {
          "network_fraud_score": {
            "description": "The network-provided fraud risk score. Range is 1-99, where a higher score indicates higher risk.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "network_identifier": {
            "description": "The network identifier. Possible values: `visa`, `mastercard`",
            "enum": [
              "unknown",
              "other",
              "visa",
              "plus",
              "interlink",
              "mastercard",
              "maestro"
            ],
            "type": "string"
          },
          "original_transaction_identifier": {
            "description": "The network identifier of a linked transaction. For refunds, this will be the network identifier of the original purchase",
            "type": "string"
          },
          "retrieval_reference_number": {
            "description": "The retrieval reference number",
            "type": "string"
          },
          "system_audit_trace_number": {
            "description": "The system audit trace number",
            "type": "string"
          },
          "transaction_identifier": {
            "description": "The card network transaction identifier",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionOriginalCreditData": {
        "properties": {
          "fast_funds": {
            "description": "Whether fast funds are enabled",
            "type": "boolean"
          },
          "purpose_of_payment": {
            "description": "The purpose of payment",
            "nullable": true,
            "type": "string"
          },
          "sender_account_number": {
            "description": "Sender account number",
            "nullable": true,
            "type": "string"
          },
          "sender_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Sender address",
            "nullable": true,
            "type": "object"
          },
          "sender_name": {
            "description": "Sender name",
            "nullable": true,
            "type": "string"
          },
          "sender_reference_number": {
            "description": "Sender reference number",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The original credit type",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionPointOfSaleDetails": {
        "properties": {
          "can_support_partial_approvals": {
            "description": "Whether the terminal can support partial approvals",
            "type": "boolean"
          },
          "card_presence": {
            "description": "The card presence. Possible values: `unknown`, `present`, `not_present`",
            "enum": [
              "unknown",
              "present",
              "not_present"
            ],
            "type": "string"
          },
          "cardholder_presence": {
            "description": "The cardholder presence. Possible values: `unknown`, `present`, `not_present`",
            "enum": [
              "unknown",
              "present",
              "not_present"
            ],
            "type": "string"
          },
          "pan_entry_mode": {
            "description": "The PAN entry mode. Possible values: `unknown`, `manual_entry`, `on_file`, `swipe`, `optical_code`, `reserved`, `contact_chip`, `contactless_chip`",
            "enum": [
              "unknown",
              "manual_entry",
              "on_file",
              "swipe",
              "optical_code",
              "reserved",
              "contact_chip",
              "contactless_chip"
            ],
            "type": "string"
          },
          "transaction_initiator": {
            "description": "The transaction initiator. Possible values: `unknown`, `cardholder`, `merchant`",
            "enum": [
              "unknown",
              "cardholder",
              "merchant"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionRecurringTransactionDetails": {
        "properties": {
          "recurring_model": {
            "description": "The recurring transaction model. Possible values: `establish_recurring`, `valid_scheduled_recurring`, `valid_unscheduled_recurring`, `industry_specific_recurring`, `no_matching_contract`",
            "enum": [
              "establish_recurring",
              "valid_scheduled_recurring",
              "valid_unscheduled_recurring",
              "industry_specific_recurring",
              "no_matching_contract"
            ],
            "nullable": true,
            "type": "string"
          },
          "recurring_original_transaction_id": {
            "description": "The original transaction ID for recurring transactions",
            "example": "ctxn_2x8gszy5folpA9s0TOCseE9ABDM",
            "nullable": true,
            "pattern": "^ctxn_[0-9A-Za-z]{27}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionTotalAmount": {
        "properties": {
          "amount": {
            "description": "The amount in the smallest unit of the currency",
            "example": 12345,
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The currency code (e.g., `USD`)",
            "example": "USD",
            "pattern": "^[A-Z]{3}$",
            "type": "string"
          },
          "fx_rate": {
            "description": "The foreign exchange rate (if applicable)",
            "format": "double",
            "nullable": true,
            "type": "number"
          }
        },
        "required": [
          "currency_code",
          "amount"
        ],
        "type": "object"
      },
      "CardTransactionTotalAmounts": {
        "properties": {
          "cardholder_authorized": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmount"
              }
            ],
            "description": "The amount authorized and being held in the cardholder's currency"
          },
          "cardholder_settled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmount"
              }
            ],
            "description": "The amount settled in the cardholder's currency"
          },
          "merchant_authorized": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmount"
              }
            ],
            "description": "The amount authorized and being held in the merchant's currency"
          },
          "merchant_settled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTotalAmount"
              }
            ],
            "description": "The amount settled in the merchant's currency"
          }
        },
        "required": [
          "merchant_settled",
          "merchant_authorized",
          "cardholder_authorized",
          "cardholder_settled"
        ],
        "type": "object"
      },
      "CardTransactionTransactionDetails": {
        "properties": {
          "account_funding_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionAccountFundingData"
              }
            ],
            "description": "Account funding transaction data",
            "nullable": true,
            "type": "object"
          },
          "fleet": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionFleetData"
              }
            ],
            "description": "Fleet data",
            "nullable": true,
            "type": "object"
          },
          "invoice_line_items": {
            "description": "Invoice line item data",
            "items": {
              "$ref": "#/components/schemas/CardTransactionInvoiceLineItemData"
            },
            "nullable": true,
            "type": "array"
          },
          "invoice_summary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionInvoiceSummaryData"
              }
            ],
            "description": "Invoice summary level data",
            "nullable": true,
            "type": "object"
          },
          "lodging_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionLodgingData"
              }
            ],
            "description": "Lodging-specific transaction data",
            "nullable": true,
            "type": "object"
          },
          "original_credit_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionOriginalCreditData"
              }
            ],
            "description": "Original credit transaction data",
            "nullable": true,
            "type": "object"
          },
          "travel_itinerary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CardTransactionTravelItineraryData"
              }
            ],
            "description": "Travel itinerary data",
            "nullable": true,
            "type": "object"
          },
          "travel_legs": {
            "description": "Travel leg data",
            "items": {
              "$ref": "#/components/schemas/CardTransactionTravelLegData"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "CardTransactionTravelItineraryData": {
        "properties": {
          "account_reference": {
            "description": "Account reference",
            "nullable": true,
            "type": "string"
          },
          "currency_code": {
            "description": "ISO currency code",
            "nullable": true,
            "type": "string"
          },
          "exchange_ticket_amount": {
            "description": "Exchange ticket amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "exchange_ticket_number": {
            "description": "Exchange ticket number",
            "nullable": true,
            "type": "string"
          },
          "is_electronic_ticket": {
            "description": "Whether this was an electronic ticket",
            "nullable": true,
            "type": "boolean"
          },
          "is_internet_transaction": {
            "description": "Whether this was an internet transaction",
            "nullable": true,
            "type": "boolean"
          },
          "item_sequencing_field": {
            "description": "Item sequencing field",
            "nullable": true,
            "type": "string"
          },
          "national_tax_amount": {
            "description": "National tax amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "passenger_name": {
            "description": "Passenger name",
            "nullable": true,
            "type": "string"
          },
          "primary_ticket_number": {
            "description": "Primary ticket number",
            "nullable": true,
            "type": "string"
          },
          "total_fare_amount": {
            "description": "Total fare amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_fee_amount": {
            "description": "Total fee amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "total_tax_amount": {
            "description": "Total tax amount in smallest currency units",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "travel_agency_code": {
            "description": "Travel agency code",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CardTransactionTravelLegData": {
        "properties": {
          "conjunction_ticket_number": {
            "description": "Conjunction ticket number",
            "nullable": true,
            "type": "string"
          },
          "control_id": {
            "description": "Control identifier",
            "nullable": true,
            "type": "string"
          },
          "item_sequencing_field": {
            "description": "Item sequencing field",
            "nullable": true,
            "type": "string"
          },
          "primary_ticket_number": {
            "description": "Primary ticket number",
            "nullable": true,
            "type": "string"
          },
          "ticket_issue_date": {
            "description": "Ticket issue date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "trip_legs": {
            "description": "Trip leg segments",
            "items": {
              "$ref": "#/components/schemas/CardTransactionTravelTripLegData"
            },
            "nullable": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "CardTransactionTravelTripLegData": {
        "properties": {
          "arrival_time": {
            "description": "Arrival time in HHMM format",
            "nullable": true,
            "type": "string"
          },
          "carrier_code": {
            "description": "Carrier code",
            "nullable": true,
            "type": "string"
          },
          "coupon_number": {
            "description": "Coupon number",
            "nullable": true,
            "type": "string"
          },
          "departure_date": {
            "description": "Departure date",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "departure_time": {
            "description": "Departure time in HHMM format",
            "nullable": true,
            "type": "string"
          },
          "destination_code": {
            "description": "Destination city or airport code",
            "nullable": true,
            "type": "string"
          },
          "fare_basis_code": {
            "description": "Fare basis code",
            "nullable": true,
            "type": "string"
          },
          "flight_number": {
            "description": "Flight number",
            "nullable": true,
            "type": "string"
          },
          "origination_code": {
            "description": "Origination city or airport code",
            "nullable": true,
            "type": "string"
          },
          "service_class": {
            "description": "Service class",
            "nullable": true,
            "type": "string"
          },
          "stop_over_code": {
            "description": "Stopover code",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ChargeInfo": {
        "properties": {
          "agent": {
            "description": "The agent or institution that applied the charge.",
            "type": "string"
          },
          "amount": {
            "description": "Amount of the charge in the smallest unit of the currency.",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code of the charge.",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code",
          "agent"
        ],
        "type": "object"
      },
      "CheckBackImagingResponse": {
        "properties": {
          "image_back": {
            "description": "Base64-encoded TIFF image of the back of the check.",
            "type": "string"
          }
        },
        "required": [
          "image_back"
        ],
        "type": "object"
      },
      "CheckFrontImagingResponse": {
        "properties": {
          "deposit_amount": {
            "description": "Extracted deposit amount from the check image, in cents.",
            "nullable": true,
            "type": "integer"
          },
          "deposit_amount_confidence": {
            "description": "Confidence score (0-1) of the deposit amount extraction.",
            "format": "double",
            "type": "number"
          },
          "image_front": {
            "description": "Base64-encoded TIFF image of the front of the check.",
            "type": "string"
          },
          "micr_line": {
            "description": "Extracted MICR line data from the check image.",
            "nullable": true,
            "type": "object"
          },
          "micr_line_confidence": {
            "description": "Confidence score (0-1) of the MICR line extraction.",
            "format": "double",
            "type": "number"
          },
          "payer_address": {
            "description": "Extracted payer address from the check image.",
            "type": "string"
          },
          "payer_address_confidence": {
            "description": "Confidence score (0-1) of the payer address extraction.",
            "format": "double",
            "type": "number"
          },
          "payer_name": {
            "description": "Extracted payer name from the check image.",
            "type": "string"
          },
          "payer_name_confidence": {
            "description": "Confidence score (0-1) of the payer name extraction.",
            "format": "double",
            "type": "number"
          },
          "receiver_address": {
            "description": "Extracted receiver address from the check image.",
            "type": "string"
          },
          "receiver_address_confidence": {
            "description": "Confidence score (0-1) of the receiver address extraction.",
            "format": "double",
            "type": "number"
          },
          "receiver_name": {
            "description": "Extracted receiver name from the check image.",
            "type": "string"
          },
          "receiver_name_confidence": {
            "description": "Confidence score (0-1) of the receiver name extraction.",
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "deposit_amount",
          "deposit_amount_confidence",
          "micr_line",
          "micr_line_confidence",
          "receiver_name",
          "receiver_name_confidence",
          "receiver_address",
          "receiver_address_confidence",
          "payer_name",
          "payer_name_confidence",
          "payer_address",
          "payer_address_confidence",
          "image_front"
        ],
        "type": "object"
      },
      "CheckReturnResponse": {
        "properties": {
          "cancelled_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check return was cancelled.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "check_transfer_id": {
            "description": "ID of the check transfer that has been returned",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check return was created.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The unique id of the check return object",
            "type": "string"
          },
          "pending_review_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check return was flagged for review.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "processed_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check return was processed.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_reason": {
            "description": "The reason for which the check was returned",
            "type": "string"
          },
          "status": {
            "description": "The current status of the check return. Possible statuses are `scheduled` and `processed`.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the check return was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "check_transfer_id",
          "return_reason",
          "status",
          "created_at",
          "updated_at",
          "pending_review_at",
          "processed_at",
          "cancelled_at"
        ],
        "type": "object"
      },
      "CheckTransfer": {
        "description": "The check transfer object represents the current state of a single check transfer initiated by or received by Column. Check transfers are used to send and receive money over Check 21-Enabled services. The check transfer object exposes all relevant information about the check transfer to developers.",
        "properties": {
          "account_number_id": {
            "description": "ID of the account number that is sending the transfer",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "attachment_document_id": {
            "description": "ID of the document attached to this check transfer.",
            "nullable": true,
            "type": "string"
          },
          "back_image": {
            "description": "Base 64 encoded TIFF image of the back of the deposited check image. This field is not populated in the check transfer object until after the check is deposited.",
            "nullable": true,
            "type": "string"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending the transfer",
            "type": "string"
          },
          "check_number": {
            "description": "Sequence number of the check",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "created_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was created.",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the check transfer.",
            "nullable": true,
            "type": "object"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "delivered_by_column": {
            "description": "For an issued check, whether this check is also mailed and delivered by Column",
            "type": "boolean"
          },
          "delivery_method": {
            "description": "The delivery method for checks delivered by Column. Can be one of `usps_first_class`, `fedex_two_day`, or `fedex_overnight`. Defaults to `usps_first_class`.",
            "nullable": true,
            "type": "string"
          },
          "delivery_status": {
            "description": "The current delivery status for checks delivered by Column. Possible statuses are `created`, `rendered_pdf`, `mailed`, `in_transit`, `in_local_area`, `processed_for_delivery`, `delivered`, `failed`, `rerouted`, and `returned_to_sender`.",
            "nullable": true,
            "type": "string"
          },
          "delivery_tracking_number": {
            "description": "The tracking number for this check, if an expedited `delivery_method` is used.",
            "nullable": true,
            "type": "string"
          },
          "delivery_tracking_url": {
            "description": "A URL to track check delivery, if an expedited `delivery_method` is used.",
            "nullable": true,
            "type": "string"
          },
          "deposited_amount": {
            "description": "Amount (in cents) of the funds that are deposited. e.g. $1.75 would be represented by 175",
            "nullable": true,
            "type": "integer"
          },
          "deposited_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check is deposited (applies only to check deposited at Column).",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer visible in account statements",
            "nullable": true,
            "type": "string"
          },
          "effective_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which a deposited check is scheduled to settle and credit the bank account (`null` for issued checks). A non-null value does not mean funds were credited — a returned check keeps its scheduled date; refer to `status` for the outcome.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "external_routing_number": {
            "description": "For an issued check, this is the routing number of the bank of first deposit",
            "nullable": true,
            "type": "string"
          },
          "extracted_payee_name": {
            "description": "The payee name extracted from the ICL file supplied by the bank of first deposit (for Column issued checks only). This can be compared to the payee name on the issued check to detect fraudulently altered checks. Not guaranteed to be accurate.",
            "nullable": true,
            "type": "string"
          },
          "first_return_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check is returned for the first time.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "front_image": {
            "description": "Base 64 encoded TIFF image of the front of the deposited check image. This field is not populated in the check transfer object until after the check is deposited.",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the check transfer",
            "nullable": true,
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp when the check transfer entered the initiated state.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "is_preview_pdf_available": {
            "description": "For a check delivered by Column, whether the preview PDF is ready to be downloaded",
            "type": "boolean"
          },
          "issued_at": {
            "description": "Date (format: `YYYY-MM-DD` ) at which the check was issued.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "lockbox_id": {
            "description": "ID of the lockbox this check transfer was deposited from.",
            "example": "lbox_3VqZkz3FNgKx24u8FQeGMB1L4mU",
            "nullable": true,
            "type": "string"
          },
          "manual_review_at": {
            "description": "Date (format: `YYYY-MM-DD` ) at which the check transfer went into manual review.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "memo": {
            "description": "Memo on the check. Only available for checks delivered by Column.",
            "nullable": true,
            "type": "string"
          },
          "message": {
            "description": "Message to the payee. Only available for checks delivered by Column.",
            "nullable": true,
            "type": "string"
          },
          "micr_line": {
            "description": "The MICR line is the sequence of numbers and characters at the bottom of a check",
            "nullable": true,
            "type": "object"
          },
          "payee_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The receiving address of the check. Only available for checks delivered by Column.",
            "nullable": true,
            "type": "object"
          },
          "payee_company": {
            "description": "Company name of the payee. Only available for checks delivered by Column.",
            "nullable": true,
            "type": "string"
          },
          "payee_name": {
            "description": "The name of the person who is receiving the check",
            "nullable": true,
            "type": "string"
          },
          "pending_deposit_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was pending deposit.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pending_first_return_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was pending first return.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pending_second_return_at": {
            "description": "The timestamp at which the check entered `pending_second_return`.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pending_stop_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was stopped.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pending_user_initiated_return_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the user initiates the return.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "positive_pay_amount": {
            "description": "Amount (in cents) of the issued check that will be used in positive pay validation if account number is provided. e.g. $1.75 would be represented by 175.",
            "nullable": true,
            "type": "integer"
          },
          "pre_review_at": {
            "description": "The timestamp when transfer approval became required for the check transfer, awaiting approval.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "reclear_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was recleared.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "rejected_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was rejected.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "returned_at": {
            "description": "Date (format `YYYY-MM-DD`) on which the check was returned",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "returns": {
            "description": "List of check returns associated with the check transfer",
            "items": {
              "$ref": "#/components/schemas/CheckReturnResponse"
            },
            "type": "array"
          },
          "reviews": {
            "description": "The transfer approval decisions recorded on the check transfer. Each entry is a dashboard user approving or rejecting the transfer while it was in `pre_review`. This list is only populated when transfer approvals are enabled for the platform, or for the API key that created the transfer; otherwise it is omitted from the response.",
            "items": {
              "$ref": "#/components/schemas/TransferReview"
            },
            "type": "array"
          },
          "second_return_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was returned for the second time.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "settled_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the check was settled.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The current status of the check transfer. Possible statuses are `initiated`, `pre_review`, `issued`, `manual_review`, `rejected`, `pending_deposit`, `pending_stop`, `deposited`, `stopped`, `pending_first_return`, `pending_second_return`, `first_return`, `pending_reclear`, `recleared`, `second_return`, `settled`, `returned`, `pending_user_initiated_return`, `user_initiated_return_submitted`, `user_initiated_returned`, and `pending_user_initiated_return_dishonored`.",
            "type": "string"
          },
          "stopped_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which funds locked for a check in a `pending_stop` state are made available.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "transfer_batch_id": {
            "description": "ID of the transfer batch this check belongs to.",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "Check transfer type. For checks deposited at Column, this is credit. For checks issued by Column and deposited at another FI, this is debit. Learn more here.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the Check transfer was last updated",
            "format": "date-time",
            "type": "string"
          },
          "user_initiated_return_dishonored_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the user initiated return is dishonored.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "user_initiated_return_submitted_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the user initiated return is submitted to the Fed.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "user_initiated_returned_at": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the user initiated return is completed.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "void_date": {
            "description": "Date the check is automatically voided",
            "format": "date",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "idempotency_key",
          "type",
          "bank_account_id",
          "account_number_id",
          "transfer_batch_id",
          "lockbox_id",
          "currency_code",
          "description",
          "external_routing_number",
          "micr_line",
          "status",
          "positive_pay_amount",
          "deposited_amount",
          "check_number",
          "payee_name",
          "extracted_payee_name",
          "front_image",
          "back_image",
          "allow_overdraft",
          "returns",
          "delivered_by_column",
          "message",
          "memo",
          "payee_address",
          "payee_company",
          "delivery_status",
          "delivery_method",
          "delivery_tracking_url",
          "delivery_tracking_number",
          "is_preview_pdf_available",
          "attachment_document_id",
          "void_date",
          "created_at",
          "updated_at",
          "initiated_at",
          "pre_review_at",
          "issued_at",
          "manual_review_at",
          "rejected_at",
          "pending_deposit_at",
          "deposited_at",
          "pending_stop_at",
          "stopped_at",
          "pending_first_return_at",
          "first_return_at",
          "reclear_at",
          "pending_second_return_at",
          "second_return_at",
          "settled_at",
          "pending_user_initiated_return_at",
          "user_initiated_return_submitted_at",
          "user_initiated_returned_at",
          "user_initiated_return_dishonored_at",
          "returned_at",
          "effective_at"
        ],
        "type": "object"
      },
      "ClearBookTransferRequest": {
        "properties": {
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) to clear. If not provided, the original transfer amount is used.",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter ISO 4217 currency code (e.g., `USD`).",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "Counterparty": {
        "description": "A counterparty is an external account that you can transfer money to and from. All ACH and Wire transfers originated by Column take in a `counterparty_id` to identify the transfer destination. Once you have created a counterparty, you can send money to it (or pull from it)! A counterparty stores an external bank account and can also store additional transaction details, as desired or required. Read about counterparties in our data model section for more information.",
        "properties": {
          "account_number": {
            "description": "The account number for the bank account.",
            "type": "string"
          },
          "account_type": {
            "description": "The type of the account number. Can be `checking`, `savings`, `general_ledger`, or `loan`.",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation.",
            "nullable": true,
            "type": "object"
          },
          "created_at": {
            "description": "The timestamp the object was created.",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the counterparty visible only in your platform. Maximum length: `127` characters.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the beneficiary.",
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "is_column_account": {
            "description": "Indicates whether this counterparty account is actually a Column account.",
            "type": "boolean"
          },
          "legal_id": {
            "description": "The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `127` characters.",
            "type": "string"
          },
          "legal_type": {
            "description": "The legal entity type of the beneficiary. Can be `business`, `non_profit`, `individual`, or `sole_proprietor`. This field is recommended for international wire transfers, and required in some countries.",
            "type": "string"
          },
          "local_account_number": {
            "description": "The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.",
            "type": "string"
          },
          "local_bank_code": {
            "description": "The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: `63` characters.",
            "type": "string"
          },
          "local_bank_country_code": {
            "description": "ISO 3166-1 Alpha-2 country code of the beneficiary's bank.",
            "type": "string"
          },
          "local_bank_name": {
            "description": "Name of the beneficiary's local bank.",
            "type": "string"
          },
          "name": {
            "description": "The counterparty name who owns the bank account. There is a `127` character limit for this field. For domestic wires, only the first 35 characters are included in the wire message.",
            "type": "string"
          },
          "phone": {
            "description": "The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `31` characters.",
            "type": "string"
          },
          "routing_number": {
            "description": "The routing number of the bank.",
            "type": "string"
          },
          "routing_number_type": {
            "description": "The type of the routing number. Can be `aba`, `bic`, or `other`.",
            "type": "string"
          },
          "search_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchMetadata"
              }
            ],
            "nullable": true,
            "type": "object"
          },
          "updated_at": {
            "description": "The timestamp the object was last updated.",
            "format": "date-time",
            "type": "string"
          },
          "wire_drawdown_allowed": {
            "description": "Whitelists counterparties for automatic approval of drawdown requests to Column via Fedwire. If `false`, all inbound drawdown requests from this counterparty will require explicit approval.",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "account_number",
          "routing_number",
          "created_at",
          "updated_at",
          "is_column_account",
          "wire_drawdown_allowed",
          "routing_number_type",
          "description",
          "account_type",
          "name",
          "address",
          "phone",
          "email",
          "legal_id",
          "legal_type",
          "local_bank_code",
          "local_bank_name",
          "local_account_number",
          "local_bank_country_code"
        ],
        "type": "object"
      },
      "CreateACHPositivePayRuleRequest": {
        "properties": {
          "ach_company_id": {
            "description": "The ACH Company ID for the rule. This is a ten digit identifier.",
            "type": "string"
          },
          "amount": {
            "description": "the amount threshold in cents that will be used in rule evaluation. Must not be set if `amount_condition` is set to `ANY_AMOUNT`",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "amount_condition": {
            "description": "This required field configures the rule to make a specific kind of amount comparison. equal: The incoming debit will only be permitted if the transfer amount equals the rule amount. `less_than_or_equal_to`: The incoming debit will only be permitted if the transfer amount is less than or equal to the rule amount. `any_amount`: The incoming debit will be permitted for any amount.",
            "type": "string"
          },
          "bank_account_id": {
            "description": "ID of the bank account this rule applies to",
            "type": "string"
          },
          "description": {
            "description": "Description of the rule. Maximum length: `255` characters.",
            "type": "string"
          }
        },
        "required": [
          "description",
          "ach_company_id",
          "bank_account_id",
          "amount_condition"
        ],
        "type": "object"
      },
      "CreateACHReturnRequest": {
        "properties": {
          "addenda": {
            "description": "Addenda information for the return. Maximum length: `44` characters.",
            "type": "string"
          },
          "date_of_death": {
            "description": "Date (format: `YYYY-MM-DD`) of the account holder's or representative payee's death. Required by Nacha in the return addenda for return codes `R14` and `R15`, and rejected for any other return code.",
            "type": "string"
          },
          "description": {
            "description": "Description for the return. Maximum length: `255` characters.",
            "type": "string"
          },
          "return_code": {
            "description": "The ACH return reason code (e.g. R01, R02, etc.)",
            "type": "string"
          }
        },
        "required": [
          "return_code"
        ],
        "type": "object"
      },
      "CreateAccountNumberParams": {
        "description": "An account number is the child of a bank account. A bank account can have one or more account numbers. Think of account numbers as a pointer to a bank account. Account numbers will be used by external banks to transact with Column bank accounts.",
        "properties": {
          "check_issuing_manual_settlement_required": {
            "description": "Whether manual settlement is required for check issuing. Only available when check issuing NSF grace period is enabled on the platform.",
            "type": "boolean"
          },
          "check_issuing_positive_pay_required": {
            "description": "Whether check issuing positive pay is required for this account number",
            "type": "boolean"
          },
          "check_issuing_prefund_required": {
            "description": "Whether prefund is required for check issuing. Omit to inherit the platform default.",
            "type": "boolean"
          },
          "description": {
            "description": "A description for this account number",
            "maxLength": 255,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreateAchTransfer": {
        "properties": {
          "account_number_id": {
            "description": "ID of the account number from which the transfer is sent. If no `account_number_id` is specified, the default account number on a provided `bank_account_id` is used. `account_number_id` or `bank_account_id` is required.",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175. A `0` amount creates a non-monetary entry: with `payment_related_info` on a CCD/CTX credit it is a zero-dollar remittance (transaction code 24/34); without `payment_related_info` it is a prenotification (prenote, transaction codes 23/28/33/38) used to validate the counterparty account before live entries. Both require the corresponding feature to be enabled for your platform, and prenotes are not supported for IAT. A non-monetary entry requires an explicit `0`; omitting the field is invalid.",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account from which the transfer is sent. If no `account_number_id` is specified, the default account number on the `bank_account_id` is used. `account_number_id` or `bank_account_id` is required.",
            "type": "string"
          },
          "company_discretionary_data": {
            "description": "This optional field allows you to include codes (one or more), of significance only to you, to enable specialized handling of the transfer. There is no standardized interpretation for the value of the field. Maximum length: `20` characters.",
            "type": "string"
          },
          "company_entry_description": {
            "description": "You can use this optional field to provide the Receiver with a description of the purpose of the transfer. Default value: `PAYMENT`. Maximum length: `10` characters.",
            "type": "string"
          },
          "company_name": {
            "description": "This optional field identifies the source of the transfer and is used for descriptive purposes for the Receiver. Default value: the root entity name of your platform, or \"COLUMN NA\" if no root entity exists. Maximum length: `16` characters.",
            "type": "string"
          },
          "counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Counterparty object to create a counterparty for the receiver of the transfer at transfer creation. Either counterparty or `counterparty_id` is required."
          },
          "counterparty_id": {
            "description": "ID of the counterparty that will receive the transfer. Either counterparty or `counterparty_id` is required.",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "description": {
            "description": "Description of the transfer visible only in your platform. Maximum length: `255` characters.",
            "type": "string"
          },
          "effective_date": {
            "description": "Date (format: `YYYY-MM-DD` ) on which the transfer will be effective",
            "type": "string"
          },
          "entry_class_code": {
            "description": "Standard Entry Class code of the transfer. Valid values: `CCD`, `CTX`, `CIE`, `PPD`, `TEL`, `WEB`.",
            "type": "string"
          },
          "hold": {
            "description": "Create the transfer held instead of submitting it. Nothing is batched or sent until it is cleared; the effective date and same-day eligibility are decided when the transfer is cleared. For credits the amount is locked out of the available balance while held; a held debit locks nothing, since an outgoing debit pulls funds in at settlement.",
            "type": "boolean"
          },
          "intermediate_financial_institutions": {
            "description": "List of intermediary financial institutions involved in an IAT (International ACH Transaction) transfer.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "payment_related_info": {
            "description": "Provides an additional `80` characters to give details on the ACH transaction for outgoing transfers. This information will be surfaced to the RDFI.",
            "type": "string"
          },
          "receiver_id": {
            "description": "This field contains the accounting reference number by which the Receiver is known to the Originator. It is included for further identification and for descriptive purposes. Maximum length: `15` characters.",
            "type": "string"
          },
          "receiver_name": {
            "description": "The name of the receiver, usually the name on the bank account of the Receiver. If omitted, counterparty.name will be automatically used. Default value: beneficiary name of the counterparty. Maximum length: `22` characters for all entry class codes except CIE it is 15 characters.",
            "type": "string"
          },
          "same_day": {
            "description": "Specify if the transfer is a same-day ACH transfer. If it is set as `true`, it takes precedence over `effective_date` and overrides it.",
            "type": "boolean"
          },
          "transaction_type_code": {
            "description": "This is a required code on IAT transfers used to identify reason for payment. Possible values: `ANN`, `BUS`, `DEP`, `LOA`, `MIS`, `MOR`, `PEN`, `REM`, `RLS`, `SAL`, `TAX`.",
            "type": "string"
          },
          "type": {
            "description": "ACH transfer type: `CREDIT` or `DEBIT`. [Learn more]({{ach}}).",
            "type": "string"
          },
          "ultimate_beneficiary_counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Counterparty object to create an ultimate beneficiary counterparty at the time of transfer creation. This is only required on outgoing IAT debits. Either `ultimate_beneficiary_counterparty` or `ultimate_beneficiary_counterparty_id` is required."
          },
          "ultimate_beneficiary_counterparty_id": {
            "description": "ID of the ultimate beneficiary counterparty that will receive the transfer. This is only required on outgoing IAT debits. Either `ultimate_beneficiary_counterparty` or `ultimate_beneficiary_counterparty_id` is required.",
            "type": "string"
          },
          "ultimate_originator_counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Counterparty object to create an ultimate originator counterparty at the time of transfer creation. This is only required on outgoing IAT credits. Either `ultimate_originator_counterparty` or `ultimate_originator_counterparty_id` is required."
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originating counterparty that will sent the transfer. This is only required on outgoing IAT credits. Either `ultimate_originator_counterparty` or `ultimate_originator_counterparty_id` is required.",
            "type": "string"
          }
        },
        "required": [
          "currency_code",
          "type",
          "entry_class_code"
        ],
        "type": "object"
      },
      "CreateAmendmentRequest": {
        "properties": {
          "account_number": {
            "description": "Amended account number",
            "nullable": true,
            "type": "string"
          },
          "account_type": {
            "description": "Amended account type",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Amended address",
            "nullable": true,
            "type": "object"
          },
          "beneficiary_name": {
            "description": "Amended beneficiary name",
            "nullable": true,
            "type": "string"
          },
          "email": {
            "description": "Amended email address",
            "nullable": true,
            "type": "string"
          },
          "intermediary_bank": {
            "description": "Amended intermediary bank BIC",
            "nullable": true,
            "type": "string"
          },
          "legal_id": {
            "description": "Amended legal ID",
            "nullable": true,
            "type": "string"
          },
          "message_to_beneficiary_bank": {
            "description": "Amended message to beneficiary bank",
            "nullable": true,
            "type": "string"
          },
          "phone": {
            "description": "Amended phone number",
            "nullable": true,
            "type": "string"
          },
          "purpose_codes": {
            "description": "Amended purpose codes",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "remittance_beneficiary_reference": {
            "description": "Amended remittance beneficiary reference",
            "nullable": true,
            "type": "string"
          },
          "remittance_general_info": {
            "description": "Amended remittance general info",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreateBankAccountRequest": {
        "properties": {
          "account_structure_id": {
            "description": "The account structure ID",
            "type": "string"
          },
          "currency_code": {
            "default": "USD",
            "description": "The three-letter ISO 4217 currency code for this bank account. Availability of non-USD currencies depends on your platform configuration. Defaults to `USD` if not set.",
            "type": "string"
          },
          "description": {
            "description": "A name for the bank account (minimum: 3 characters)",
            "type": "string"
          },
          "display_name": {
            "description": "The display name for the bank account. Display name is an account nickname used on Column's Dashboard.",
            "type": "string"
          },
          "entity_id": {
            "description": "The entity ID of the owner",
            "type": "string"
          },
          "fdic_insurance": {
            "description": "The type of FDIC insurance offered on this account. The default value is `standard`.",
            "type": "string"
          },
          "interest_config_id": {
            "description": "The ID of interest config for this account. If it is not set, the default interest config of your platform will be used for this account. Please contact our support team for more details.",
            "type": "string"
          },
          "is_interest_bearing": {
            "description": "Whether your platform needs to accrue and pay interest to this account. Please contact our support team for more details.",
            "type": "boolean"
          },
          "is_overdraftable": {
            "description": "Whether the account can be overdrafted, must include an `overdraft_reserve_account_id`",
            "type": "boolean"
          },
          "overdraft_reserve_account_id": {
            "description": "The overdraft reserve account that this account is linked to. If `is_overdraftable`: `true` then this field is required.",
            "type": "string"
          }
        },
        "required": [
          "entity_id"
        ],
        "type": "object"
      },
      "CreateBookTransferRequest": {
        "properties": {
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between sender and receiver accounts. e.g. $1.75 would be represented by 175.",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer visible in account statements.",
            "type": "string"
          },
          "details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BookTransferMonitoringDetailsRequest"
              }
            ],
            "description": "Additional monitoring details for the book transfer, used for compliance and reporting purposes.",
            "nullable": true,
            "type": "object"
          },
          "hold": {
            "description": "If set to `true`, the transfer will be created in a `HOLD` status instead of completing immediately.",
            "type": "boolean"
          },
          "receiver_account_number_id": {
            "description": "ID of the account number that will receive the transfer.",
            "type": "string"
          },
          "receiver_bank_account_id": {
            "description": "ID of the bank account that will receive the transfer.",
            "type": "string"
          },
          "sender_account_number_id": {
            "description": "ID of the account number that is sending the transfer.",
            "type": "string"
          },
          "sender_bank_account_id": {
            "description": "ID of the bank account that is sending the transfer.",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "CreateBusinessEntity": {
        "properties": {
          "account_usage": {
            "description": "Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation. Required by default."
          },
          "business_name": {
            "description": "Legal Business Name",
            "type": "string"
          },
          "collected_at": {
            "additionalProperties": {
              "format": "date-time",
              "type": "string"
            },
            "description": "Field collection timestamps, keyed by field path (for example, `business_name` or `ein`). Values must be RFC3339 timestamps between `1900-01-01T00:00:00Z` and the current time. An empty map records no timestamps. Nested beneficial owner fields do not support `collected_at`; attest beneficial owners separately as person entities. Idempotency replays return the original resource without re-applying timestamps.",
            "type": "object"
          },
          "countries_of_operation": {
            "description": "Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., `US`, `FR`, `UK`, `DE`, ... ) are allowed. Only required for a root entity.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "country_of_incorporation": {
            "description": "Country in which the business is incorporated. ISO 3166-1 Alpha-2 Country Code.",
            "type": "string"
          },
          "date_of_incorporation": {
            "description": "Date on which the business was incorporated. Format: `YYYY-MM-DD`.",
            "type": "string"
          },
          "dba_name": {
            "description": "Doing Business As name, if different from the legal business name.",
            "type": "string"
          },
          "description": {
            "description": "Description of the business entity. Only required for a root entity.",
            "type": "string"
          },
          "ein": {
            "description": "Employer Identification Number (Tax ID). This may be SSN for a sole proprietorship. At least one form of business identification (`ein` or `registration_id`) is required unless `ein_pending` is set to `true`.",
            "type": "string"
          },
          "ein_pending": {
            "description": "Set to `true` if the business has applied for an EIN but has not yet received it. When `true`, `ein` and `registration_id` must not be provided. Cannot be `true` for root entities.",
            "type": "boolean"
          },
          "end_customer_type": {
            "description": "Type of end customer the business serves. Accepts a free-form string.",
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "type": "string"
          },
          "expected_use_of_funds": {
            "description": "Expected use of funds for the business accounts. Accepts a free-form string.",
            "type": "string"
          },
          "has_virtual_address": {
            "description": "Indicates whether the business uses a virtual address.",
            "type": "boolean"
          },
          "industry": {
            "description": "Industry in which the business entity operates.",
            "type": "string"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "type": "boolean"
          },
          "is_root": {
            "description": "Whether this entity is going to be a root entity of the platform. Root entities have special requirements and validation rules.",
            "type": "boolean"
          },
          "legal_type": {
            "description": "Type of business. Permitted values are `limited-partnership`, `trust`, `sole-proprietorship`, `corporation`, `llc`, `general-partnership`, `professional-association`, `government`, `non-profit`, `other`, `pic-piv`, `spv`, `irrevocable_trust`, `revocable_trust`.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the business expects to make international payments.",
            "type": "boolean"
          },
          "payment_volumes": {
            "description": "Expected payment volumes. Only required for a root entity.",
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "type": "string"
          },
          "registration_id": {
            "description": "Registration ID. At least one form of business identification (`ein` or `registration_id`) is required unless `ein_pending` is set to `true`.",
            "type": "object"
          },
          "source_of_funds": {
            "description": "Primary source of funds for the business.",
            "type": "string"
          },
          "state_of_incorporation": {
            "description": "State in which the business is incorporated. Only postal abbreviations (e.g. `AL`, `CA`, `DE`, ...) are allowed. Only required for a root entity.",
            "type": "string"
          },
          "website": {
            "description": "Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.",
            "type": "string"
          },
          "year_of_incorporation": {
            "description": "Year in which the business entity was incorporated. Only required for a root entity.",
            "type": "string"
          }
        },
        "required": [
          "business_name",
          "ein_pending"
        ],
        "type": "object"
      },
      "CreateCheckReturnRequest": {
        "properties": {
          "return_reason": {
            "description": "Return reason for a manual return. Only `A`, `N`, and `Q` are allowed as manual return reasons.",
            "type": "string"
          }
        },
        "required": [
          "return_reason"
        ],
        "type": "object"
      },
      "CreateCounterparty": {
        "properties": {
          "account_number": {
            "description": "The account number for the bank account.",
            "type": "string"
          },
          "account_type": {
            "description": "The type of the account number. Can be `checking`, `savings`, `general_ledger`, or `loan`.",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation.",
            "nullable": true,
            "type": "object"
          },
          "description": {
            "description": "Description of the counterparty visible only in your platform. Maximum length: `127` characters.",
            "type": "string"
          },
          "email": {
            "description": "The email address of the beneficiary.",
            "type": "string"
          },
          "legal_id": {
            "description": "The legal ID (e.g., Tax ID, Cedula Juridica, etc.) of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `127` characters.",
            "type": "string"
          },
          "legal_type": {
            "description": "The legal entity type of the beneficiary. Can be `business`, `non_profit`, `individual`, or `sole_proprietor`. This field is recommended for international wire transfers, and required in some countries.",
            "nullable": true,
            "type": "string"
          },
          "local_account_number": {
            "description": "The local account number (e.g. Cuenta Cliente in Costa Rica) in the beneficiary's bank. This field is recommended for international wire transfers, and required in some countries. Maximum length: 63 characters.",
            "type": "string"
          },
          "local_bank_code": {
            "description": "The local bank code of the beneficiary's bank (e.g., India IFSC, Australia BSB, China CNAPS, etc.). This field is recommended for international wire transfers, and required in some countries. Maximum length: `63` characters.",
            "type": "string"
          },
          "local_bank_country_code": {
            "description": "The ISO 3166-1 alpha-2 country code of the beneficiary's local bank.",
            "nullable": true,
            "type": "string"
          },
          "local_bank_name": {
            "description": "Name of the beneficiary's local bank.",
            "nullable": true,
            "type": "string"
          },
          "name": {
            "description": "The counterparty name who owns the bank account. There is a `127` character limit for this field. For domestic wires, only the first 35 characters are included in the wire message.",
            "type": "string"
          },
          "phone": {
            "description": "The phone number of the beneficiary. This field is recommended for international wire transfers, and required in some countries. Maximum length: `31` characters.",
            "type": "string"
          },
          "routing_number": {
            "description": "The routing number of the bank.",
            "type": "string"
          },
          "routing_number_type": {
            "description": "The type of the routing number. Can be `aba`, `bic`, or `other`.",
            "type": "string"
          },
          "wire_drawdown_allowed": {
            "description": "Whitelists counterparties for automatic approval of drawdown requests to Column via Fedwire. If `false`, all inbound drawdown requests from this counterparty will require explicit approval.",
            "type": "boolean"
          }
        },
        "required": [
          "routing_number",
          "account_number"
        ],
        "type": "object"
      },
      "CreateDisbursementRequest": {
        "properties": {
          "account_number_id": {
            "description": "ID of the account number to which funds will be disbursed. Either `bank_account_id` or `account_number_id` must be specified. For offline disbursements, this is for record only and no funds will be disbursed.",
            "type": "string"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be disbursed.",
            "nullable": true,
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account to which funds will be disbursed. Either `bank_account_id` or `account_number_id` must be specified. For offline disbursements, this is for record only and no funds will be disbursed.",
            "type": "string"
          },
          "currency": {
            "description": "The currency of the disbursement. Currently only `USD` is supported.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan disbursement. Maximum length: `127` characters.",
            "maxLength": 127,
            "type": "string"
          },
          "details": {
            "description": "Transfer monitoring details",
            "nullable": true,
            "type": "object"
          },
          "hold": {
            "description": "If set to `true`, creates a disbursement in a `hold` state. The disbursement will not be completed until the `clear` API is called. Disbursements in a `hold` state may be updated or canceled.",
            "type": "boolean"
          },
          "is_offline": {
            "description": "If set to `true`, the disbursement will only increase the principal receivables sold to your platform. The retained principal receivables will not be impacted and no funds will be credited to the bank account. [Read more]({{lending.disbursement}}).",
            "type": "boolean"
          },
          "loan_id": {
            "description": "The ID of the loan from which the disbursement is being made.",
            "type": "string"
          }
        },
        "required": [
          "loan_id",
          "amount",
          "currency"
        ],
        "type": "object"
      },
      "CreateEntityEvidenceRequest": {
        "properties": {
          "data": {
            "description": "Structured data associated with the evidence, as a JSON object. The shape of this object depends on the evidence type.",
            "type": "object"
          },
          "description": {
            "description": "A description of the evidence. Maximum 255 characters.",
            "maxLength": 255,
            "type": "string"
          },
          "evidence_type": {
            "description": "The type of evidence to submit.",
            "type": "string"
          },
          "purposes": {
            "description": "The purposes of the evidence submission. Column creates one evidence record per purpose, all referencing the same document/data. Use `cardholder_agreement` for cardholder agreements collected for card programs.",
            "items": {
              "enum": [
                "proof_of_address",
                "business_formation",
                "identity_verification",
                "tax_id_confirmation",
                "active_status_certificate",
                "signed_account_agreement",
                "cardholder_agreement",
                "attestation_control_person",
                "attestation_beneficial_ownership",
                "attestation_account_info_truth",
                "attestation_terms_of_service",
                "ofac_screening",
                "adverse_media_screening",
                "pep_screening",
                "complete_customer_file",
                "irs_form_ss4",
                "irs_form_990",
                "nonprofit_other_evidence",
                "edd",
                "attestation_privacy_policy"
              ],
              "type": "string"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "evidence_type",
          "purposes"
        ],
        "type": "object"
      },
      "CreateEntityEvidenceResponse": {
        "properties": {
          "evidence": {
            "description": "The created evidence records, one per requested purpose.",
            "items": {
              "$ref": "#/components/schemas/EntityEvidence"
            },
            "type": "array"
          }
        },
        "required": [
          "evidence"
        ],
        "type": "object"
      },
      "CreateEntityNarrativeRequest": {
        "properties": {
          "body": {
            "description": "The free-form text of the narrative. Maximum length is 30,000 characters. Narratives are append-only and cannot be edited after creation.",
            "type": "string"
          },
          "related_document_id": {
            "description": "Optional ID of a document this narrative references. The document must belong to your platform.",
            "type": "string"
          },
          "related_field": {
            "description": "Optional entity field path this narrative is about, e.g. `last_name` or `associated_persons.control_person.address`.",
            "type": "string"
          }
        },
        "required": [
          "body"
        ],
        "type": "object"
      },
      "CreateInternationalWireTransferRequest": {
        "properties": {
          "account_number_id": {
            "description": "ID of the account number sending the transfer. Exactly one of `bank_account_id` or `account_number_id` must be provided.",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Whether overdraft is allowed for this transfer",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount in the smallest unit of the currency. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account sending the transfer. Exactly one of `bank_account_id` or `account_number_id` must be provided.",
            "type": "string"
          },
          "charge_bearer": {
            "description": "The charge bearer code. Can be `DEBT`, `CRED`, or `SHAR`.",
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty receiving the transfer",
            "type": "string"
          },
          "currency_code": {
            "description": "Currency code (ISO 4217). e.g. `EUR`, `GBP`, `JPY`.",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer",
            "type": "string"
          },
          "fx_quote_id": {
            "description": "The ID of an FX quote to use for this transfer",
            "type": "string"
          },
          "hold": {
            "description": "Create the transfer with the funds held instead of submitting it. The amount is locked out of the available balance and nothing is sent until it is cleared; the settlement path is decided when the transfer is cleared. FX transfers can be held (the quote is booked at creation; clearing fails with fx_quote_expired if the hold outlives it).",
            "type": "boolean"
          },
          "intermediary_bank": {
            "description": "SWIFT BIC of the intermediary bank",
            "type": "string"
          },
          "message_to_beneficiary_bank": {
            "description": "Message to the beneficiary bank",
            "type": "string"
          },
          "purpose_code": {
            "description": "Purpose code for the transfer",
            "type": "string"
          },
          "remittance_info": {
            "description": "Remittance information for the transfer",
            "nullable": true,
            "properties": {
              "beneficiary_reference": {
                "description": "Reference for the beneficiary",
                "maxLength": 30,
                "type": "string"
              },
              "general_info": {
                "description": "General remittance information",
                "maxLength": 140,
                "type": "string"
              }
            },
            "type": "object"
          },
          "ultimate_originator_counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Inline ultimate originator counterparty details. See counterparty creation for full field reference."
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originator counterparty",
            "type": "string"
          }
        },
        "required": [
          "counterparty_id",
          "amount",
          "currency_code",
          "charge_bearer",
          "allow_overdraft",
          "description",
          "fx_quote_id",
          "remittance_info",
          "message_to_beneficiary_bank",
          "purpose_code",
          "intermediary_bank",
          "ultimate_originator_counterparty_id"
        ],
        "type": "object"
      },
      "CreateLoanInterestConfigRequest": {
        "description": "Configuration for interest accrual on a loan.",
        "properties": {
          "accrual_method": {
            "description": "The accrual method for interest calculation. Possible values: `actual_360`, `actual_365`, and `actual_actual`.",
            "type": "string"
          },
          "description": {
            "description": "A description for the interest configuration",
            "nullable": true,
            "type": "string"
          },
          "history": {
            "description": "List of interest config snapshots defining rates and their effective dates. At least one snapshot is required.",
            "items": {
              "$ref": "#/components/schemas/LoanInterestConfigSnapshot"
            },
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "accrual_method",
          "history"
        ],
        "type": "object"
      },
      "CreateLoanPaymentRequest": {
        "properties": {
          "account_number_id": {
            "description": "ID of the source account number. Source account is required if this payment is not offline, or the loan is not completely owned by your platform. Either `bank_account_id` or `account_number_id` must be specified.",
            "type": "string"
          },
          "amount": {
            "description": "Amount in cents for principal and interest payments. At least one of `amount` or `principal_amount` must be specified.",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the source bank account. Source account is required if this payment is not offline, or the loan is not completely owned by your platform. Either `bank_account_id` or `account_number_id` must be specified.",
            "type": "string"
          },
          "currency": {
            "description": "The currency of the payment. Currently only `USD` is supported.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan payment. Maximum: `127` characters.",
            "maxLength": 127,
            "type": "string"
          },
          "ignore_retained_balances": {
            "description": "Indicates whether this payment should be applied to sold balances only. [Read more]({{lending.payment}}).",
            "type": "boolean"
          },
          "is_offline": {
            "description": "Indicates if this payment is an offline payment. Default value: `false`.",
            "type": "boolean"
          },
          "loan_id": {
            "description": "The ID of the loan to which the payment is being made. The `principal_outstanding` of the loan will decrease by the payment amount.",
            "type": "string"
          },
          "principal_amount": {
            "description": "Amount in cents for principal payments. At least one of `amount` or `principal_amount` must be specified.",
            "type": "integer"
          }
        },
        "required": [
          "loan_id",
          "currency"
        ],
        "type": "object"
      },
      "CreateLoanRequest": {
        "properties": {
          "allow_overpayment": {
            "description": "Indicates if a loan is able to be overpaid and have a `principal_outstanding` of less than $0. If `false`, payments that would result in a loan having a negative balance will be blocked.",
            "type": "boolean"
          },
          "auto_sell": {
            "description": "Indicates if seasoned principals/interests should be automatically sold to your platform. Default: the value in the loan program.",
            "type": "boolean"
          },
          "collateral_bank_account_id": {
            "description": "The bank account that collateralizes a secured loan.",
            "type": "string"
          },
          "currency": {
            "description": "The three-letter currency code defined in ISO 4217, e.g. `USD`.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan in the Column dashboard.",
            "type": "string"
          },
          "entity_id": {
            "description": "The entity to create the loan under.",
            "type": "string"
          },
          "interest_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateLoanInterestConfigRequest"
              }
            ],
            "description": "Inline interest configuration to create with the loan. Either `interest_config_id` or `interest_config` may be specified, but not both.",
            "nullable": true,
            "type": "object"
          },
          "interest_config_id": {
            "description": "ID of the interest configuration used to accrue interest receivable daily. If this field is not set, the default interest configuration of the loan program will be used. The same interest configuration can be shared across multiple loans. Either `interest_config_id` or `interest_config` may be specified, but not both.",
            "type": "string"
          },
          "is_business_seasoning_days": {
            "description": "Indicates if `seasoning_days` are business days or calendar days. Default: the value in the loan program.",
            "type": "boolean"
          },
          "is_revolving": {
            "description": "Indicates whether or not the loan is revolving. If `true` the loan can have multiple disbursements. Default: the value in the loan program.",
            "type": "boolean"
          },
          "loan_program_id": {
            "description": "ID of the loan program for this loan. If this field is not set, your platform's default loan program will be used.",
            "type": "string"
          },
          "maturity_date": {
            "description": "The maturity date of the loan. It is required if the loan is not revolving.",
            "format": "date",
            "type": "string"
          },
          "max_principal_balance": {
            "description": "The max principal balance of the loan in cents. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal. e.g. $1.75 would be represented by `175`.",
            "type": "integer"
          },
          "retained_by_column": {
            "description": "Indicates if this loan should be retained by Column. Loans retained by Column are not eligible for your platform to purchase. Default: the value in the loan program.",
            "type": "boolean"
          },
          "seasoning_days": {
            "description": "Number of days principal receivables will be seasoned. Default: the value in the loan program.",
            "nullable": true,
            "type": "integer"
          },
          "type": {
            "default": "unsecured",
            "description": "The loan type. Defaults to `unsecured`.",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "max_principal_balance",
          "currency",
          "is_revolving"
        ],
        "type": "object"
      },
      "CreateLoanSaleRequest": {
        "properties": {
          "amount": {
            "description": "Amount in cents that will be purchased. This amount cannot exceed the current sale price of the loan. Either `amount` or `percentage` must be specified, but not both.",
            "type": "integer"
          },
          "currency_code": {
            "description": "ISO 4217 currency code. It must be the same as the currency code on the loan.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan sale. Maximum: `255` characters.",
            "maxLength": 255,
            "type": "string"
          },
          "percentage": {
            "description": "Percentage of the current sale price of the loan to purchase (e.g., `\"0.80\"` for 80%). Maximum value: `\"1.00\"`. Either `amount` or `percentage` must be specified, but not both.",
            "type": "string"
          },
          "purchase_funding_account_number_id": {
            "description": "ID of the account number in your platform to fund this purchase. If this field is not set, the default purchase funding account number for the loan program of this loan will be used.",
            "type": "string"
          }
        },
        "required": [
          "currency_code"
        ],
        "type": "object"
      },
      "CreateLockboxRequest": {
        "description": "Request to create and assign a lockbox to a bank account or account number.",
        "properties": {
          "account_number_id": {
            "description": "ID of the account number to link to the lockbox. Either `bank_account_id` or `account_number_id` must be specified.",
            "type": "string"
          },
          "bank_account_id": {
            "description": "ID of the bank account to link to the lockbox. Either `bank_account_id` or `account_number_id` must be specified.",
            "type": "string"
          },
          "description": {
            "description": "Optional description of the lockbox. Maximum length: `255` characters.",
            "maxLength": 255,
            "type": "string"
          },
          "processing_center": {
            "description": "Processing center to use when creating the lockbox. Defaults to `TX`.",
            "enum": [
              "CA",
              "NY",
              "TX"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CreatePersonEntity": {
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation. Required by default."
          },
          "collected_at": {
            "additionalProperties": {
              "format": "date-time",
              "type": "string"
            },
            "description": "Field collection timestamps, keyed by field path (for example, `first_name` or `ssn`). Values must be RFC3339 timestamps between `1900-01-01T00:00:00Z` and the current time. An empty map records no timestamps. Nested beneficial owners do not support `collected_at`; attest them separately as person entities. Idempotency replays return the original resource without re-applying timestamps.",
            "type": "object"
          },
          "country_of_citizenship": {
            "description": "Country of citizenship of the individual. Country of citizenship does not need to match the issuing country of an identity document. ISO 3166-1 Alpha-2 Country Code (e.g., `US`, `FR`, `UK`, `DE`, ...).",
            "type": "string"
          },
          "date_of_birth": {
            "description": "Date of birth in `YYYY-MM-DD` format. Required by default.",
            "type": "string"
          },
          "drivers_license": {
            "description": "Driver's license details. At least one form of identification (`ssn`, `passport`, `drivers_license`, or `national_id`) is required. Driver's license country code must be non-U.S. When left blank, the Driver's License field returns `null`.",
            "type": "object"
          },
          "email": {
            "description": "Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the Email field returns an empty string (`\"\"`).",
            "type": "string"
          },
          "employment_status": {
            "description": "Employment status of the individual.",
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "type": "string"
          },
          "first_name": {
            "description": "First name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "income": {
            "description": "Estimated pre-tax annual income. Accepts an array to allow passing income ranges.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "type": "boolean"
          },
          "is_root": {
            "description": "Whether this entity is going to be a root entity of the platform. Root entities have special requirements and validation rules.",
            "type": "boolean"
          },
          "last_name": {
            "description": "Last name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the individual expects to make international payments.",
            "type": "boolean"
          },
          "middle_name": {
            "description": "Middle name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "national_id": {
            "description": "National ID details. At least one form of identification (`ssn`, `passport`, `drivers_license`, or `national_id`) is required. National ID country code must be non-U.S. When left blank, the National ID field returns `null`.",
            "type": "object"
          },
          "occupation": {
            "description": "Industry of employment or occupation of the individual.",
            "type": "string"
          },
          "passport": {
            "description": "Passport details. At least one form of identification (`ssn`, `passport`, `drivers_license`, or `national_id`) is required. Passport country code must be non-U.S. When left blank, the Passport field returns an empty object and the Driver's License and National ID fields return `null`.",
            "type": "object"
          },
          "pep_status": {
            "description": "Politically Exposed Person screening status. Allowed values: `not_checked`, `no`, `yes`, `potential`.",
            "type": "string"
          },
          "phone_number": {
            "description": "Phone number of the individual in the E.164 format. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the phone number field returns an empty string (`\"\"`).",
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "role": {
            "description": "Individual's role or job title at their place of employment.",
            "type": "string"
          },
          "source_of_income": {
            "description": "Sources of income for the individual.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ssn": {
            "description": "Social Security Number. ITIN may be shared in place of SSN. At least one form of identification (`ssn`, `passport`, `drivers_license`, or `national_id`) is required. If SSN is provided, country of citizenship is not required. When left blank (i.e., for non-U.S. citizens) the SSN field returns an empty string (`\"\"`).",
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "date_of_birth"
        ],
        "type": "object"
      },
      "CreateRealtimeRFP": {
        "properties": {
          "account_number_id": {
            "description": "Source account number ID",
            "type": "string"
          },
          "amount": {
            "description": "RFP amount in smallest unit",
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          },
          "bank_account_id": {
            "description": "Source bank account ID",
            "type": "string"
          },
          "counterparty_id": {
            "description": "Counterparty ID",
            "type": "string"
          },
          "currency_code": {
            "description": "ISO 4217 currency code",
            "enum": [
              "USD"
            ],
            "type": "string"
          },
          "description": {
            "description": "Free-form RFP description",
            "maxLength": 255,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code",
          "counterparty_id"
        ],
        "type": "object"
      },
      "CreateRealtimeRequestForReturn": {
        "properties": {
          "description": {
            "description": "Free-form return request description",
            "maxLength": 105,
            "type": "string"
          },
          "reason": {
            "description": "Return request reason",
            "enum": [
              "incorrect_beneficiary_account",
              "incorrect_amount",
              "requested_by_originator",
              "duplicate",
              "fraud",
              "tech_failure",
              "payment_not_justified"
            ],
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "CreateRealtimeTransfer": {
        "properties": {
          "account_number_id": {
            "description": "Source account number ID",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Whether overdraft is allowed",
            "type": "boolean"
          },
          "amount": {
            "description": "Transfer amount in smallest unit",
            "format": "int64",
            "minimum": 1,
            "type": "integer"
          },
          "bank_account_id": {
            "description": "Source bank account ID",
            "type": "string"
          },
          "counterparty_id": {
            "description": "Counterparty ID",
            "type": "string"
          },
          "currency_code": {
            "description": "ISO 4217 currency code",
            "enum": [
              "USD"
            ],
            "type": "string"
          },
          "description": {
            "description": "Free-form transfer description",
            "maxLength": 255,
            "type": "string"
          },
          "end_to_end_id": {
            "description": "End-to-end identifier",
            "maxLength": 35,
            "type": "string"
          },
          "hold": {
            "description": "Create the transfer with the funds held instead of submitting it. The amount is locked out of the available balance and nothing is routed or sent until it is cleared; the rail (FedNow or RTP) is decided when the transfer is cleared.",
            "type": "boolean"
          },
          "ultimate_debtor_counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Inline ultimate debtor counterparty details"
          },
          "ultimate_debtor_counterparty_id": {
            "description": "Ultimate debtor counterparty ID",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code",
          "counterparty_id"
        ],
        "type": "object"
      },
      "CreateWebhookEndpointRequest": {
        "properties": {
          "description": {
            "description": "A description for this webhook endpoint.",
            "type": "string"
          },
          "enabled_events": {
            "description": "A list of events and event types which will be sent to this webhook's URL.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "url": {
            "description": "The HTTPS URL that webhooks will be delivered to.",
            "type": "string"
          }
        },
        "required": [
          "enabled_events",
          "url",
          "description"
        ],
        "type": "object"
      },
      "CreateWireDrawdownRequest": {
        "properties": {
          "amount": {
            "description": "Amount (in cents) of the wire drawdown request.",
            "format": "int64",
            "type": "integer"
          },
          "beneficiary_account_number_id": {
            "description": "ID of the account number that will receive the funds.",
            "type": "string"
          },
          "beneficiary_bank_account_id": {
            "description": "ID of the bank account that will receive the funds.",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "recipient_counterparty_id": {
            "description": "ID of the counterparty from which funds are being drawn.",
            "type": "string"
          },
          "recipient_description": {
            "description": "Description of the drawdown request sent to the recipient.",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code",
          "beneficiary_account_number_id",
          "beneficiary_bank_account_id",
          "recipient_counterparty_id",
          "recipient_description"
        ],
        "type": "object"
      },
      "CreateWireReturnRequest": {
        "properties": {
          "additional_info": {
            "description": "Additional information about the return request. Maximum 105 characters.",
            "type": "string"
          },
          "return_request_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WireReturnRequestReason"
              }
            ],
            "description": "The reason for the return request. Possible values: `incorrect_beneficiary_account`, `incorrect_amount`, `requested_by_originator`, `duplicate`, `fraud`, `tech_failure`, `payment_not_justified`."
          }
        },
        "required": [
          "return_request_reason",
          "additional_info"
        ],
        "type": "object"
      },
      "CreateWireTransferRequest": {
        "properties": {
          "account_number_id": {
            "description": "ID of the account number from which the wire transfer is sent. Exactly one of `bank_account_id` or `account_number_id` is required.",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred. e.g. $1.75 would be represented by 175.",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account from which the wire transfer is sent. Exactly one of `bank_account_id` or `account_number_id` is required. If a `bank_account_id` is provided, the default account number on that bank account is used.",
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that will receive the transfer.",
            "type": "string"
          },
          "creditor_tax_id": {
            "description": "A Tax Identification Number (TIN) or Employer Identification Number (EIN) of exactly `9` numeric characters for the creditor.",
            "nullable": true,
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer. This field contains originator to beneficiary information and will be transmitted to the RDFI. `140` character limit.",
            "type": "string"
          },
          "hold": {
            "description": "Create the transfer with the funds held instead of submitting it. The amount is locked out of the available balance and the wire is not sent until it is cleared.",
            "type": "boolean"
          },
          "instructed_bank_routing_number": {
            "description": "Optional ABA routing number of the instructed bank (Fedwire receiver) when it differs from the counterparty's bank. When specified, the wire is physically sent to this institution on Fedwire, which then forwards funds to the counterparty's bank. Must be a valid Fedwire-eligible ABA routing number.\n",
            "nullable": true,
            "type": "string"
          },
          "tax_record_period_type": {
            "description": "The tax record period type for tax-related wire transfers. Possible values: `MM01`-`MM12` (monthly), `QTR1`-`QTR4` (quarterly), `HLF1`-`HLF2` (half-yearly).",
            "nullable": true,
            "type": "string"
          },
          "tax_type_code": {
            "description": "The tax type code for tax-related wire transfers. Possible values: `WITF` (withholding tax), `TAXE` (tax payment).",
            "nullable": true,
            "type": "string"
          },
          "tax_year": {
            "description": "A Tax Year of exactly `4` numerical characters.",
            "nullable": true,
            "type": "string"
          },
          "ultimate_originator_counterparty": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreateCounterparty"
              }
            ],
            "description": "Inline counterparty object for the ultimate originator. Use this instead of `ultimate_originator_counterparty_id` to create a new counterparty inline."
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originating counterparty that sent the transfer in an outgoing wire transfer.",
            "type": "string"
          }
        },
        "required": [
          "counterparty_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "CustomerFacingAdminTransfer": {
        "properties": {
          "admin_transfer_id": {
            "description": "The unique ID of the admin transfer",
            "type": "string"
          },
          "amount": {
            "description": "The amount of the transfer in cents",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "The bank account the admin transfer was executed against",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp of when the admin transfer was created",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The currency code of the transfer",
            "type": "string"
          },
          "description": {
            "description": "The reason for the transfer",
            "type": "string"
          },
          "details": {
            "description": "Additional metadata related to the transfer, the schema is defined by the `details_type` field",
            "type": "object"
          },
          "details_type": {
            "description": "The type of the details struct",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key supplied when the admin transfer was created",
            "type": "string"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AdminTransferType"
              }
            ],
            "description": "credit or debit depending on the direction of the transfer"
          }
        },
        "required": [
          "created_at",
          "admin_transfer_id",
          "bank_account_id",
          "type",
          "currency",
          "amount",
          "description"
        ],
        "type": "object"
      },
      "DepositCheckRequest": {
        "properties": {
          "account_number_id": {
            "description": "Optional. If omitted, defaults to the default account number ID for the provided bank account.",
            "type": "string"
          },
          "bank_account_id": {
            "description": "bank account ID to credit funds to.",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "deposited_amount": {
            "description": "Amount (in cents) of the check being deposited.",
            "type": "integer"
          },
          "description": {
            "description": "A description of the check deposit.",
            "nullable": true,
            "type": "string"
          },
          "image_back": {
            "description": "base64 encoded string of the TIFF image bytes.",
            "type": "string"
          },
          "image_front": {
            "description": "base64 encoded string of the TIFF image bytes.",
            "type": "string"
          },
          "micr_line": {
            "description": "MICR data for the check",
            "nullable": true,
            "type": "object"
          },
          "transfer_batch_id": {
            "description": "ID of the transfer batch this deposit belongs to.",
            "type": "string"
          }
        },
        "required": [
          "bank_account_id",
          "currency_code",
          "deposited_amount",
          "micr_line",
          "image_front",
          "image_back"
        ],
        "type": "object"
      },
      "Document": {
        "description": "Document objects are a pointer to documents that are created or stored on Column. There are two main types of documents: Documents you upload to Column which support KYC/KYB verification for entities. And report documents generated by Column, which you can download.",
        "properties": {
          "checksum": {
            "description": "The SHA-256 checksum of the uploaded document",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp at which the document was created in the Column system",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Description of the document provided when the document was created",
            "type": "string"
          },
          "id": {
            "description": "The unique id of this object",
            "example": "docu_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^docu_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "size": {
            "description": "The file size in bytes",
            "format": "int64",
            "type": "integer"
          },
          "tag": {
            "description": "The tag of the document",
            "type": "string"
          },
          "type": {
            "description": "The type of document",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp the document was updated",
            "format": "date-time",
            "type": "string"
          },
          "url": {
            "description": "URL to download the document. Expires after 60 seconds.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "type",
          "description",
          "tag",
          "size",
          "checksum",
          "url"
        ],
        "type": "object"
      },
      "DocumentList": {
        "properties": {
          "documents": {
            "description": "List of documents",
            "items": {
              "$ref": "#/components/schemas/DocumentListItem"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether more documents are available",
            "type": "boolean"
          }
        },
        "required": [
          "documents",
          "has_more"
        ],
        "type": "object"
      },
      "DocumentListItem": {
        "properties": {
          "created_at": {
            "description": "The creation date of the document",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "The description of the document",
            "nullable": true,
            "type": "string"
          },
          "ext": {
            "description": "The file extension",
            "type": "string"
          },
          "id": {
            "description": "The ID of the document",
            "example": "docu_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^docu_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "size": {
            "description": "The file size in bytes",
            "format": "int64",
            "type": "integer"
          },
          "tag": {
            "description": "The tag of the document",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The type of the document",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "type",
          "ext",
          "size"
        ],
        "type": "object"
      },
      "EmptyResponse": {
        "description": "Empty response object",
        "type": "object"
      },
      "Entity": {
        "description": "An entity represents a person or organization possessing separate and distinct legal rights. You will create entities for each of your customers or users. An entity is required to create a bank account or a loan object. Read about entities in our data model section for more information.",
        "properties": {
          "business_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BusinessDetails"
              }
            ],
            "description": "Business details for business entities. Present on single-entity responses, omitted in list responses."
          },
          "collected_at": {
            "additionalProperties": {
              "format": "date-time",
              "type": "string"
            },
            "description": "Field collection timestamps, keyed by field path (for example, `first_name` or `ssn`). Omitted when no timestamps are recorded.",
            "type": "object"
          },
          "documents": {
            "description": "List of documents which are uploaded with the Submit Document API",
            "items": {
              "$ref": "#/components/schemas/EntityDocument"
            },
            "type": "array"
          },
          "id": {
            "description": "Unique identifier for the object",
            "type": "string"
          },
          "is_root": {
            "description": "Whether this entity is going to be a root entity of the platform. Root entities have special requirements and validation rules.",
            "type": "boolean"
          },
          "last_screened_at": {
            "description": "The timestamp at which the entity was last screened for compliance.",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "description": "Display name of the entity, derived from person or business details.",
            "type": "string"
          },
          "person_details": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PersonDetails"
              }
            ],
            "description": "Person details for person entities. Present on single-entity responses, omitted in list responses."
          },
          "requires_screening": {
            "description": "Whether the entity requires additional screening before it can be verified.",
            "type": "boolean"
          },
          "review_reasons": {
            "description": "List of reasons the entity is in `Manual_Review`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "search_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchMetadata"
              }
            ],
            "nullable": true,
            "type": "object"
          },
          "type": {
            "description": "Type of entity. `PERSON` for a person entity. `BUSINESS` for a business entity.",
            "type": "string"
          },
          "verification_status": {
            "description": "Current status of the entity verification. Can be `UNVERIFIED`, `PENDING`, `MANUAL_REVIEW`, `VERIFIED`, or `DENIED`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "verification_status",
          "is_root",
          "review_reasons",
          "documents",
          "requires_screening"
        ],
        "type": "object"
      },
      "EntityAdditionalRequirementsJSON": {
        "properties": {
          "business_convicted_crime": {
            "description": "Whether the business has ever been convicted of a crime.",
            "type": "boolean"
          },
          "business_email": {
            "description": "The business email address.",
            "type": "string"
          },
          "business_licenses_revoked": {
            "description": "Whether the business has ever had any licenses revoked.",
            "type": "boolean"
          },
          "business_phone_number": {
            "description": "The business phone number in E.164 format.",
            "type": "string"
          },
          "compliance_outsourced_details": {
            "description": "Details about outsourced compliance functions, if any.",
            "type": "string"
          },
          "employee_count": {
            "description": "Total number of employees at the business.",
            "type": "integer"
          },
          "fi_branch_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The branch address of the financial institution."
          },
          "fi_flow_of_funds": {
            "description": "Description of the flow of funds through the financial institution.",
            "type": "string"
          },
          "fi_nested_services": {
            "description": "Whether the financial institution offers nested financial services to other institutions.",
            "type": "boolean"
          },
          "fi_no_license_explanation": {
            "description": "Explanation for why the financial institution does not hold a license, if applicable.",
            "type": "string"
          },
          "fi_products_services": {
            "description": "Description of products and services offered by the financial institution.",
            "type": "string"
          },
          "hi_risk_inflow_pct_over_10": {
            "description": "Whether more than 10% of inflows are from high-risk jurisdictions.",
            "type": "boolean"
          },
          "hi_risk_outflow_pct_over_10": {
            "description": "Whether more than 10% of outflows are to high-risk jurisdictions.",
            "type": "boolean"
          },
          "is_financial_institution": {
            "description": "Whether the entity is a financial institution.",
            "type": "boolean"
          },
          "legal_entity_exemption": {
            "description": "Whether the entity qualifies for a legal entity exemption from beneficial ownership requirements.",
            "type": "boolean"
          },
          "mailing_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The mailing address of the business entity."
          },
          "mrlo_entity_id": {
            "description": "The entity ID of the Money Laundering Reporting Officer (MLRO).",
            "type": "string"
          },
          "offers_virtual_currency": {
            "description": "Whether the business offers virtual currency services.",
            "type": "boolean"
          },
          "ownership_structure_free_text": {
            "description": "Free-text description of the entity's ownership structure.",
            "type": "string"
          },
          "payment_percent_business": {
            "description": "Percentage of payments that are business-to-business (0-100).",
            "type": "integer"
          },
          "payment_percent_consumer": {
            "description": "Percentage of payments that are consumer-to-business (0-100).",
            "type": "integer"
          },
          "place_of_business_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The physical place of business address."
          },
          "pooled_investment_vehicle": {
            "description": "Whether the entity is a pooled investment vehicle.",
            "type": "boolean"
          },
          "qualified_non_profit": {
            "description": "Whether the entity is a qualified non-profit organization.",
            "type": "boolean"
          },
          "sole_prop_entity_id": {
            "description": "The entity ID of the sole proprietor person entity, if the business is a sole proprietorship.",
            "type": "string"
          },
          "stock_ticker": {
            "description": "The stock ticker symbol if the business is publicly traded.",
            "type": "string"
          },
          "top_currencies": {
            "description": "List of top currency codes (ISO 4217) the business transacts in.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "uses_iat_for_international_payments": {
            "description": "Whether the business uses IAT (International ACH Transaction) for international payments.",
            "type": "boolean"
          },
          "virtual_currency_details": {
            "description": "Details about the virtual currency services offered, if applicable.",
            "type": "string"
          },
          "web_presence": {
            "description": "List of URLs representing the business's web presence (websites, social media, etc.).",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "EntityCompliance": {
        "description": "The compliance status of each field Column requires for an entity under your program.",
        "properties": {
          "entity_id": {
            "description": "The unique ID of the entity.",
            "type": "string"
          },
          "fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of field path (e.g. `address.line_1`, `evidence.proof_of_address`) to its status: `complete`, `missing`, `invalid`, or `pending`.",
            "type": "object"
          },
          "updated_at": {
            "description": "The timestamp at which the entity's compliance status was last evaluated.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "updated_at",
          "fields"
        ],
        "type": "object"
      },
      "EntityDocument": {
        "properties": {
          "created_at": {
            "description": "Timestamp at which the document was created.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "Description of the uploaded document.",
            "type": "string"
          },
          "document_id": {
            "description": "Unique identifier of the document.",
            "type": "string"
          },
          "entity_id": {
            "description": "Unique identifier of the entity the document belongs to.",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "document_id",
          "description"
        ],
        "type": "object"
      },
      "EntityEvidence": {
        "properties": {
          "created_at": {
            "description": "The timestamp at which the evidence was created.",
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "description": "Structured data associated with the evidence, as a JSON object. The shape of this object depends on the evidence type.",
            "type": "object"
          },
          "description": {
            "description": "A description of the evidence.",
            "type": "string"
          },
          "entity_id": {
            "description": "ID of the entity this evidence belongs to.",
            "type": "string"
          },
          "evidence_type": {
            "description": "The type of evidence submitted.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for this evidence object.",
            "type": "string"
          },
          "purpose": {
            "description": "The purpose of the evidence submission. Use `cardholder_agreement` for cardholder agreements collected for card programs.",
            "enum": [
              "proof_of_address",
              "business_formation",
              "identity_verification",
              "tax_id_confirmation",
              "active_status_certificate",
              "signed_account_agreement",
              "cardholder_agreement",
              "attestation_control_person",
              "attestation_beneficial_ownership",
              "attestation_account_info_truth",
              "attestation_terms_of_service",
              "ofac_screening",
              "adverse_media_screening",
              "pep_screening",
              "complete_customer_file",
              "irs_form_ss4",
              "irs_form_990",
              "nonprofit_other_evidence",
              "edd",
              "attestation_privacy_policy"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "entity_id",
          "evidence_type",
          "purpose",
          "data",
          "created_at"
        ],
        "type": "object"
      },
      "EntityNarrative": {
        "properties": {
          "body": {
            "description": "The free-form text of the narrative.",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp at which the narrative was created.",
            "format": "date-time",
            "type": "string"
          },
          "entity_id": {
            "description": "ID of the entity this narrative belongs to.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for this narrative.",
            "type": "string"
          },
          "related_document_id": {
            "description": "Optional ID of a document this narrative references.",
            "type": "string"
          },
          "related_field": {
            "description": "Optional entity field path this narrative is about, e.g. `last_name` or `associated_persons.control_person.address`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "entity_id",
          "body",
          "created_at"
        ],
        "type": "object"
      },
      "Event": {
        "description": "The event object is a snapshot of a particular data object (ACH, wire, book, return..etc) in time. An event object will be created each time a data object is created, or changes state. For example, you can use events to track state changes of a particular transfer over time - like an ACH transfer that has been initiated, submitted, settled, or returned.",
        "properties": {
          "created_at": {
            "description": "The timestamp at which the event was emitted",
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "description": "The object instance that triggered the event to be emitted. For example, on an ach.* event, this will be the ACH object.",
            "type": "object"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "type": {
            "description": "The type of event which was emitted. See Events and Webhooks for more information.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "type",
          "data"
        ],
        "type": "object"
      },
      "ExternalDestination": {
        "properties": {
          "counterparty_id": {
            "description": "The counterparty ID",
            "type": "string"
          },
          "receiver_name": {
            "description": "The receiver name",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ExternalSource": {
        "properties": {
          "bank_name": {
            "description": "The bank name",
            "type": "string"
          },
          "counterparty_id": {
            "description": "The counterparty ID",
            "type": "string"
          },
          "sender_name": {
            "description": "The sender name",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FXQuote": {
        "description": "The Foreign Exchange Quote object represents the rate quote for an international wire transfer.",
        "properties": {
          "buy_amount": {
            "description": "Buy amount in smallest unit",
            "format": "int64",
            "type": "integer"
          },
          "buy_currency_code": {
            "description": "Buy currency ISO code",
            "type": "string"
          },
          "created_at": {
            "description": "Time the FX quote was created",
            "format": "date-time",
            "type": "string"
          },
          "expired_at": {
            "description": "Time the FX quote expires",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The ID of the FX quote",
            "type": "string"
          },
          "rate": {
            "description": "Effective exchange rate",
            "type": "string"
          },
          "rate_date": {
            "description": "Calendar date used for the exchange rate",
            "format": "date",
            "type": "string"
          },
          "sell_amount": {
            "description": "Sell amount in smallest unit",
            "format": "int64",
            "type": "integer"
          },
          "sell_currency_code": {
            "description": "Sell currency ISO code",
            "type": "string"
          },
          "status": {
            "description": "Current status of the FX quote",
            "type": "string"
          },
          "updated_at": {
            "description": "Time the FX quote was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "rate",
          "rate_date",
          "expired_at",
          "sell_currency_code",
          "sell_amount",
          "buy_currency_code",
          "buy_amount",
          "status"
        ],
        "type": "object"
      },
      "FXRate": {
        "description": "The market rate object represents current market rates published by the New York Fed on each business day. They are used as the default pivot rates for various interest-bearing products.",
        "properties": {
          "buy_currency_code": {
            "description": "Buy currency ISO code",
            "type": "string"
          },
          "rate": {
            "description": "Effective exchange rate including platform margin",
            "type": "string"
          },
          "rate_without_margin": {
            "description": "Effective exchange rate without platform margin",
            "type": "string"
          },
          "sell_currency_code": {
            "description": "Sell currency ISO code",
            "type": "string"
          },
          "updated_at": {
            "description": "Time the FX rate was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "updated_at",
          "sell_currency_code",
          "buy_currency_code",
          "rate",
          "rate_without_margin"
        ],
        "type": "object"
      },
      "FXRateSheet": {
        "description": "The foreign exchange rate sheet object includes FX rates for all foreign currencies that Column supports. This rate sheet is informational only and should be used to display FX rates to your customers. You can read about more about international wires and creating FX quotes here.",
        "properties": {
          "data": {
            "description": "FX rates by currency pair",
            "items": {
              "$ref": "#/components/schemas/FXRate"
            },
            "type": "array"
          },
          "fx_rate_margin_bps": {
            "description": "Platform FX rate margin in basis points",
            "type": "integer"
          },
          "supported_currencies": {
            "description": "Number of supported currency pairs",
            "type": "integer"
          }
        },
        "required": [
          "fx_rate_margin_bps",
          "supported_currencies",
          "data"
        ],
        "type": "object"
      },
      "FinancialInstitution": {
        "properties": {
          "ach_eligible": {
            "description": "Whether the institution is eligible for ACH transfers",
            "type": "boolean"
          },
          "check_eligible": {
            "description": "Whether the institution is eligible for check transfers",
            "type": "boolean"
          },
          "city": {
            "description": "The city of the institution",
            "type": "string"
          },
          "country_code": {
            "description": "The country code of the institution",
            "type": "string"
          },
          "created_at": {
            "description": "The creation timestamp",
            "format": "date-time",
            "type": "string"
          },
          "full_name": {
            "description": "The full name of the institution",
            "type": "string"
          },
          "phone_number": {
            "description": "The phone number of the institution",
            "type": "string"
          },
          "realtime_eligible": {
            "description": "Whether the institution is eligible for realtime transfers",
            "type": "boolean"
          },
          "realtime_rfp_eligible": {
            "description": "Whether the institution is eligible for realtime request for payment",
            "type": "boolean"
          },
          "routing_number": {
            "description": "The routing number of the financial institution",
            "type": "string"
          },
          "routing_number_type": {
            "description": "The type of routing number",
            "type": "string"
          },
          "short_name": {
            "description": "The short name of the institution",
            "type": "string"
          },
          "state": {
            "description": "The state of the institution",
            "type": "string"
          },
          "street_address": {
            "description": "The street address of the institution",
            "type": "string"
          },
          "updated_at": {
            "description": "The last update timestamp",
            "format": "date-time",
            "type": "string"
          },
          "wire_eligible": {
            "description": "Whether the institution is eligible for wire transfers",
            "type": "boolean"
          },
          "wire_settlement_only": {
            "description": "Whether the institution only supports wire settlement",
            "type": "boolean"
          },
          "zip_code": {
            "description": "The ZIP code of the institution",
            "type": "string"
          }
        },
        "required": [
          "routing_number",
          "routing_number_type",
          "created_at",
          "updated_at",
          "short_name",
          "full_name",
          "wire_eligible",
          "wire_settlement_only",
          "ach_eligible",
          "check_eligible",
          "realtime_eligible",
          "realtime_rfp_eligible",
          "street_address",
          "city",
          "state",
          "zip_code",
          "country_code",
          "phone_number"
        ],
        "type": "object"
      },
      "GetAdditionalRequirementsResponse": {
        "properties": {
          "additional_requirements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityAdditionalRequirementsJSON"
              }
            ],
            "description": "The additional information Column needs about this entity to complete onboarding, or `null` if no additional requirements are pending.",
            "nullable": true,
            "type": "object"
          },
          "entity_id": {
            "description": "ID of the entity these additional requirements belong to.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the additional requirements were last updated.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "updated_at",
          "additional_requirements"
        ],
        "type": "object"
      },
      "GetAssociatedPersonsResponse": {
        "properties": {
          "associated_persons": {
            "description": "List of person entities associated with this business entity and their roles.",
            "items": {
              "$ref": "#/components/schemas/AssociatedPerson"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "id": {
            "description": "The entity ID this list of associated persons belongs to.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "associated_persons",
          "has_more"
        ],
        "type": "object"
      },
      "GetEntitiesResponse": {
        "properties": {
          "entities": {
            "description": "List of entities.",
            "items": {
              "$ref": "#/components/schemas/Entity"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          }
        },
        "required": [
          "entities",
          "has_more"
        ],
        "type": "object"
      },
      "GetEntityEvidenceResponse": {
        "properties": {
          "evidence": {
            "description": "List of evidence objects attached to the entity.",
            "items": {
              "$ref": "#/components/schemas/EntityEvidence"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          }
        },
        "required": [
          "evidence",
          "has_more"
        ],
        "type": "object"
      },
      "GetEntityNarrativesResponse": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "narratives": {
            "description": "List of narratives attached to the entity, newest first.",
            "items": {
              "$ref": "#/components/schemas/EntityNarrative"
            },
            "type": "array"
          }
        },
        "required": [
          "narratives",
          "has_more"
        ],
        "type": "object"
      },
      "IATAddenda": {
        "example": {
          "foreign_correspondent_bank_info": [
            {
              "branch_country_code": "branch_country_code",
              "identification_number": "identification_number",
              "identification_number_qualifier": "identification_number_qualifier",
              "name": "name"
            }
          ],
          "foreign_payment_amount": 11500,
          "foreign_trace_number": "",
          "odfi_branch_country_code": "IE",
          "odfi_identification": "02800008",
          "odfi_identification_number_qualifier": "01",
          "odfi_name": "CITIBANK EUROPE PLC",
          "originator_city_state_province": "LONDON*GB\\",
          "originator_country_postal_code": "REDACTED",
          "originator_name": "REDACTED",
          "originator_street_address": "REDACTED",
          "payment_related_info": [],
          "rdfi_branch_country_code": "US",
          "rdfi_identification": "REDACTED",
          "rdfi_identification_number_qualifier": "01",
          "rdfi_name": "COLUMN N.A.",
          "receiver_city_state_province": "x\\",
          "receiver_country_postal_code": "US*74110\\",
          "receiver_identification_number": "REDACTED",
          "receiver_street_address": "REDACTED",
          "receiving_company_or_individual_name": "REDACTED",
          "transaction_type_code": "BUS"
        },
        "properties": {
          "foreign_correspondent_bank_info": {
            "description": "Provides additional details around foreign correspondent banks used in the IAT transfer",
            "items": {
              "$ref": "#/components/schemas/Addenda18"
            },
            "type": "array"
          },
          "foreign_payment_amount": {
            "description": "The amount for which the transfer was originated by the Foreign ODFI. This will be in `USD`, since Column will receive IATs from a domestic correspondent bank.",
            "format": "int64",
            "type": "integer"
          },
          "foreign_trace_number": {
            "description": "Contains the trace number assigned to the transfer in the originating national payments system",
            "type": "string"
          },
          "odfi_branch_country_code": {
            "description": "The two-character country code which identifies the country in which the branch of the bank that originated the transfer is located",
            "type": "string"
          },
          "odfi_identification": {
            "description": "The routing number of the DFI originating the transfer",
            "type": "string"
          },
          "odfi_identification_number_qualifier": {
            "description": "The two digit numbering scheme used in the ODFI identification number. Possible values are `01` (National Clearing System Number), `02` (BIC Code), or `03` (IBAN).",
            "type": "string"
          },
          "odfi_name": {
            "description": "The name of the ODFI",
            "type": "string"
          },
          "originator_city_state_province": {
            "description": "Contains the city, and if applicable the state or province of the originator",
            "type": "string"
          },
          "originator_country_postal_code": {
            "description": "Contains the postal code for the originator street address",
            "type": "string"
          },
          "originator_name": {
            "description": "Contains the name of the originator of the transaction",
            "type": "string"
          },
          "originator_street_address": {
            "description": "Contains the physical street address of the originator",
            "type": "string"
          },
          "payment_related_info": {
            "description": "Additional payment-related information included in the IAT addenda records",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "rdfi_branch_country_code": {
            "description": "The two-character country code which identifies the country in which the branch of the bank that received the transfer is located",
            "type": "string"
          },
          "rdfi_identification": {
            "description": "Contains the bank identification number of the DFI at which the receiver maintains their account",
            "type": "string"
          },
          "rdfi_identification_number_qualifier": {
            "description": "The two digit numbering scheme used in the RDFI identification number. Possible values are `01` (National Clearing System Number), `02` (BIC Code), or `03` (IBAN).",
            "type": "string"
          },
          "rdfi_name": {
            "description": "The name of the RDFI",
            "type": "string"
          },
          "receiver_city_state_province": {
            "description": "Contains the city, and if applicable the state or province of the receiver",
            "type": "string"
          },
          "receiver_country_postal_code": {
            "description": "Contains the postal code for the receiver street address",
            "type": "string"
          },
          "receiver_identification_number": {
            "description": "This field is used by the originator to insert its own number for tracing purposes",
            "type": "string"
          },
          "receiver_street_address": {
            "description": "Contains the physical street address of the receiver",
            "type": "string"
          },
          "receiving_company_or_individual_name": {
            "description": "Contains the name of the receiver of the transaction",
            "type": "string"
          },
          "transaction_type_code": {
            "description": "A code identifying the reason for payment. Possible values: `ANN`, `BUS`, `DEP`, `LOA`, `MIS`, `MOR`, `PEN`, `REM`, `RLS`, `SAL`, `TAX`.",
            "type": "string"
          }
        },
        "required": [
          "foreign_payment_amount",
          "foreign_trace_number",
          "receiving_company_or_individual_name",
          "originator_name",
          "originator_street_address",
          "originator_city_state_province",
          "originator_country_postal_code",
          "odfi_name",
          "odfi_identification_number_qualifier",
          "odfi_identification",
          "odfi_branch_country_code",
          "rdfi_name",
          "rdfi_identification_number_qualifier",
          "rdfi_identification",
          "rdfi_branch_country_code",
          "receiver_identification_number",
          "receiver_street_address",
          "receiver_city_state_province",
          "receiver_country_postal_code",
          "foreign_correspondent_bank_info",
          "payment_related_info",
          "transaction_type_code"
        ],
        "type": "object"
      },
      "IBAN": {
        "example": {
          "account_number": "31926819",
          "bank_id": "NWBK",
          "bic": "NWBKGB2L",
          "branch_id": "601613",
          "check_digits": "29",
          "country_code": "GB",
          "iban": "GB29NWBK60161331926819",
          "institution_name": "NATIONAL WESTMINSTER BANK PLC",
          "national_id": "NWBK601613"
        },
        "properties": {
          "account_number": {
            "description": "Account number in the financial institution",
            "type": "string"
          },
          "bank_id": {
            "description": "Local bank code of the financial institution in its country",
            "type": "string"
          },
          "bic": {
            "description": "BIC of the financial institution",
            "type": "string"
          },
          "branch_id": {
            "description": "Branch ID of the financial institution",
            "nullable": true,
            "type": "string"
          },
          "check_digits": {
            "description": "Check digits of the IBAN",
            "type": "string"
          },
          "country_code": {
            "description": "ISO 3166-1 Alpha-2 Country Code (e.g., `US`, `FR`, `UK`, `DE`) of the financial institution",
            "type": "string"
          },
          "iban": {
            "description": "The IBAN being validated",
            "type": "string"
          },
          "institution_name": {
            "description": "Name of the financial institution",
            "type": "string"
          },
          "national_id": {
            "description": "National ID of the financial institution in its country, which usually consists of its `bank_id` and `branch_id`",
            "type": "string"
          }
        },
        "required": [
          "iban",
          "country_code",
          "check_digits",
          "bank_id",
          "national_id",
          "account_number",
          "bic",
          "institution_name"
        ],
        "type": "object"
      },
      "Identity": {
        "description": "An identity (API key or dashboard user) that performed an action.",
        "properties": {
          "id": {
            "description": "The unique ID of the identity (e.g., API key ID or dashboard user ID).",
            "type": "string"
          },
          "name": {
            "description": "The display name of the identity.",
            "type": "string"
          },
          "type": {
            "description": "The type of the identity.",
            "enum": [
              "API_KEY",
              "DASHBOARD_USER"
            ],
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ],
        "type": "object"
      },
      "InternalAccount": {
        "properties": {
          "account_number_id": {
            "description": "The account number ID",
            "type": "string"
          },
          "bank_account_id": {
            "description": "The bank account ID",
            "type": "string"
          }
        },
        "required": [
          "bank_account_id",
          "account_number_id"
        ],
        "type": "object"
      },
      "IssueCheckRequest": {
        "properties": {
          "account_number_id": {
            "description": "Optional. If omitted, defaults to the default account number ID for the provided bank account. Exactly one of `bank_account_id` or `account_number_id` must be provided.",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer.",
            "type": "boolean"
          },
          "bank_account_id": {
            "description": "bank account ID to debit funds from. Exactly one of `bank_account_id` or `account_number_id` must be provided.",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "customized_check_number": {
            "description": "Custom check number to use instead of the auto-generated one.",
            "type": "number"
          },
          "description": {
            "description": "A description of the check transfer.",
            "nullable": true,
            "type": "string"
          },
          "mail_check_request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MailCheckRequest"
              }
            ],
            "description": "Request details for mailing the check to a recipient address."
          },
          "payee_name": {
            "description": "Name of the person or entity the check is payable to.",
            "type": "string"
          },
          "positive_pay_amount": {
            "description": "Optional. If provided, Column will perform positive-pay validation.",
            "type": "integer"
          },
          "void_date": {
            "description": "Date the check is automatically voided. Must be a future date. Interpreted as Pacific Time.",
            "format": "date",
            "type": "string"
          }
        },
        "required": [
          "positive_pay_amount",
          "currency_code",
          "description",
          "payee_name",
          "allow_overdraft"
        ],
        "type": "object"
      },
      "LinkAssociatedPersonRequest": {
        "properties": {
          "ownership_percentage": {
            "description": "The percentage of ownership the person holds in the business (0-100).",
            "nullable": true,
            "type": "integer"
          },
          "person_entity_id": {
            "description": "The ID of the person entity to associate with the business entity.",
            "type": "string"
          },
          "roles": {
            "description": "The roles of the person in the business. Possible values: `control_person`, `beneficial_owner`, `account_opener`, `grantor`, `trustee`, `beneficiary`, `card_holder`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title_in_business": {
            "description": "The person's title or role name within the business (e.g. \"Chief Executive Officer\").",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "person_entity_id",
          "roles"
        ],
        "type": "object"
      },
      "ListACHPositivePayRulesResponse": {
        "properties": {
          "ach_positive_pay_rules": {
            "description": "List of ACH positive pay rules",
            "items": {
              "$ref": "#/components/schemas/ACHPositivePayRuleResponse"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether additional rules exist beyond this page",
            "type": "boolean"
          }
        },
        "required": [
          "ach_positive_pay_rules",
          "has_more"
        ],
        "type": "object"
      },
      "ListAccountNumbersResponse": {
        "properties": {
          "account_numbers": {
            "description": "List of account numbers.",
            "items": {
              "$ref": "#/components/schemas/AccountNumber"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether more records are available beyond this page.",
            "type": "boolean"
          }
        },
        "required": [
          "account_numbers",
          "has_more"
        ],
        "type": "object"
      },
      "ListCheckReturnResponse": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "returns": {
            "description": "List of returns.",
            "items": {
              "$ref": "#/components/schemas/CheckReturnResponse"
            },
            "type": "array"
          }
        },
        "required": [
          "returns",
          "has_more"
        ],
        "type": "object"
      },
      "ListCheckTransfers": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of transfers.",
            "items": {
              "$ref": "#/components/schemas/CheckTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "ListCounterpartiesResponse": {
        "properties": {
          "counterparties": {
            "description": "List of counterparties.",
            "items": {
              "$ref": "#/components/schemas/Counterparty"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          }
        },
        "required": [
          "counterparties",
          "has_more"
        ],
        "type": "object"
      },
      "ListEventsResponse": {
        "properties": {
          "events": {
            "description": "The list of events matching the request.",
            "items": {
              "$ref": "#/components/schemas/Event"
            },
            "type": "array"
          },
          "has_more": {
            "description": "A flag for use in pagination. Tells whether or not there are more elements available to list after this page. If `false`, this page is the end of the list and there's no more records after it.",
            "type": "boolean"
          }
        },
        "required": [
          "events",
          "has_more"
        ],
        "type": "object"
      },
      "ListFinancialInstitution": {
        "properties": {
          "has_more": {
            "description": "Whether more institutions are available",
            "type": "boolean"
          },
          "institutions": {
            "description": "List of financial institutions",
            "items": {
              "$ref": "#/components/schemas/FinancialInstitution"
            },
            "type": "array"
          }
        },
        "required": [
          "institutions",
          "has_more"
        ],
        "type": "object"
      },
      "ListLoanDisbursements": {
        "properties": {
          "disbursements": {
            "description": "List of loan disbursements",
            "items": {
              "$ref": "#/components/schemas/LoanDisbursement"
            },
            "type": "array"
          },
          "has_more": {
            "description": "Whether additional disbursements exist beyond this page",
            "type": "boolean"
          }
        },
        "required": [
          "disbursements",
          "has_more"
        ],
        "type": "object"
      },
      "ListLoanPayment": {
        "properties": {
          "has_more": {
            "description": "Whether additional payments exist beyond this page",
            "type": "boolean"
          },
          "payments": {
            "description": "List of loan payments",
            "items": {
              "$ref": "#/components/schemas/LoanPayment"
            },
            "type": "array"
          }
        },
        "required": [
          "payments",
          "has_more"
        ],
        "type": "object"
      },
      "ListLoanProgramsResponse": {
        "properties": {
          "has_more": {
            "description": "Whether additional loan programs exist beyond this page",
            "type": "boolean"
          },
          "loan_programs": {
            "description": "List of loan programs",
            "items": {
              "$ref": "#/components/schemas/LoanProgram"
            },
            "type": "array"
          }
        },
        "required": [
          "loan_programs",
          "has_more"
        ],
        "type": "object"
      },
      "ListLoanSalesResponse": {
        "properties": {
          "has_more": {
            "description": "Whether additional loan sales exist beyond this page",
            "type": "boolean"
          },
          "loan_sales": {
            "description": "List of loan sales",
            "items": {
              "$ref": "#/components/schemas/LoanSale"
            },
            "type": "array"
          }
        },
        "required": [
          "loan_sales",
          "has_more"
        ],
        "type": "object"
      },
      "ListLoans": {
        "properties": {
          "has_more": {
            "description": "Whether additional loans exist beyond this page",
            "type": "boolean"
          },
          "loans": {
            "description": "List of loans",
            "items": {
              "$ref": "#/components/schemas/Loan"
            },
            "type": "array"
          }
        },
        "required": [
          "loans",
          "has_more"
        ],
        "type": "object"
      },
      "ListLockboxes": {
        "properties": {
          "has_more": {
            "description": "Whether more lockboxes are available",
            "type": "boolean"
          },
          "lockboxes": {
            "description": "List of lockboxes",
            "items": {
              "$ref": "#/components/schemas/Lockbox"
            },
            "type": "array"
          }
        },
        "required": [
          "lockboxes",
          "has_more"
        ],
        "type": "object"
      },
      "ListSettlementReportsResponse": {
        "properties": {
          "has_more": {
            "description": "Whether there are more reports available",
            "type": "boolean"
          },
          "reports": {
            "description": "The list of settlement reports",
            "items": {
              "$ref": "#/components/schemas/SettlementReport"
            },
            "type": "array"
          }
        },
        "required": [
          "reports",
          "has_more"
        ],
        "type": "object"
      },
      "ListSwiftTransfersResponse": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of transfers.",
            "items": {
              "$ref": "#/components/schemas/SwiftTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "ListTransfers": {
        "properties": {
          "has_more": {
            "description": "Whether more results are available",
            "type": "boolean"
          },
          "total_results_count": {
            "description": "The total number of results",
            "format": "int64",
            "type": "integer"
          },
          "transfers": {
            "description": "List of unified transfers",
            "items": {
              "$ref": "#/components/schemas/UnifiedTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "ListWebhookDeliveries": {
        "properties": {
          "webhook_deliveries": {
            "description": "List of webhook deliveries.",
            "items": {
              "$ref": "#/components/schemas/WebhookDelivery"
            },
            "type": "array"
          }
        },
        "required": [
          "webhook_deliveries"
        ],
        "type": "object"
      },
      "ListWebhookEndpoints": {
        "properties": {
          "webhook_endpoints": {
            "description": "List of webhook endpoints.",
            "items": {
              "$ref": "#/components/schemas/WebhookEndpoint"
            },
            "type": "array"
          }
        },
        "required": [
          "webhook_endpoints"
        ],
        "type": "object"
      },
      "ListWireDrawdownRequests": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "requests": {
            "description": "List of wire drawdown request objects.",
            "items": {
              "$ref": "#/components/schemas/WireDrawdownRequest"
            },
            "type": "array"
          }
        },
        "required": [
          "requests",
          "has_more"
        ],
        "type": "object"
      },
      "ListWireReturnRequests": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "requests": {
            "description": "List of wire return request objects.",
            "items": {
              "$ref": "#/components/schemas/WireReturnRequest"
            },
            "type": "array"
          }
        },
        "required": [
          "requests",
          "has_more"
        ],
        "type": "object"
      },
      "Loan": {
        "description": "A loan is an object that lives under an entity, at the same level as a bank account. Just like entities can have multiple bank accounts, entities can have multiple loans. Loans are the foundation for many lending-oriented use cases such as charge cards and term loans. [Read more]({{lending}}).",
        "example": {
          "allow_overpayment": false,
          "auto_sell": false,
          "balances": {
            "interest_paid": "300",
            "interest_receivable": "54400",
            "principal_charged_off": "0",
            "principal_holding": "0",
            "principal_outstanding": "6666600",
            "principal_paid": "33300",
            "retained_interest_paid": "100",
            "retained_interest_receivable": "9800",
            "retained_principal_charged_off": "0",
            "retained_principal_outstanding": "1111100",
            "retained_principal_paid": "5500",
            "servicing_fee_payable": "560"
          },
          "canceled_at": null,
          "charged_off_at": null,
          "collateral_locked_amount": 0,
          "created_at": "2025-06-06T08:00:00Z",
          "currency": "USD",
          "delinquent_at": null,
          "description": "",
          "disputed_at": null,
          "id": "loan_2zEi4Q67eiQqyQkGXPqEzWXn5Q",
          "interest_config_id": "icfg_2zEi4VfLQfR06mm1fnAGcwcNT1D",
          "is_business_seasoning_days": false,
          "is_revolving": true,
          "loan_program_id": "lpgm_2zEi4QiopsBnyfuHQweFXc7Csi8",
          "maturity_date": "2025-07-30",
          "max_principal_balance": 100000000000,
          "paid_off_at": null,
          "primary_signer_entity_id": "enti_2zEi4U3gAGjdRAVHOJ19UkyG27K",
          "retained_by_column": false,
          "seasoning_days": 2,
          "status": "current",
          "type": "unsecured"
        },
        "properties": {
          "allow_overpayment": {
            "description": "Indicates if a loan is able to be overpaid and have a `principal_outstanding` of less than $0. If `false`, payments that would result in a loan having a negative balance will be blocked.",
            "type": "boolean"
          },
          "auto_sell": {
            "description": "Indicates if seasoned principals/interests should be automatically sold to your platform. Default: the value in the loan program.",
            "type": "boolean"
          },
          "balances": {
            "description": "The loan balances.",
            "nullable": true,
            "properties": {
              "interest_paid": {
                "description": "Total paid interest in cents belonging to Column and your platform.",
                "type": "string"
              },
              "interest_receivable": {
                "description": "Total outstanding interest receivable in cents for principal belonging to Column and your platform.",
                "type": "string"
              },
              "principal_charged_off": {
                "description": "The charged-off principal receivable.",
                "type": "string"
              },
              "principal_holding": {
                "description": "The principal receivable of the loan which is in a holding state.",
                "type": "string"
              },
              "principal_outstanding": {
                "description": "Total outstanding principal receivable in cents belonging to Column and your platform.",
                "type": "string"
              },
              "principal_paid": {
                "description": "The principal receivable of the loan which has been paid belonging to Column and your platform.",
                "type": "string"
              },
              "retained_interest_paid": {
                "description": "Total paid interest in cents belonging to Column.",
                "type": "string"
              },
              "retained_interest_receivable": {
                "description": "Total outstanding interest receivable in cents for principal belonging to Column.",
                "type": "string"
              },
              "retained_principal_charged_off": {
                "description": "The charged-off principal receivable belonging to Column.",
                "type": "string"
              },
              "retained_principal_outstanding": {
                "description": "Total outstanding principal receivable in cents belonging to Column.",
                "type": "string"
              },
              "retained_principal_paid": {
                "description": "Total paid principal receivable in cents belonging to Column.",
                "type": "string"
              },
              "servicing_fee_payable": {
                "description": "Total outstanding servicing fee payable in cents to your platform.",
                "type": "string"
              }
            },
            "type": "object"
          },
          "canceled_at": {
            "description": "The timestamp the loan was canceled at. Returns `null` when not applicable.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "charged_off_at": {
            "description": "The timestamp the loan was charged off. Returns `null` when not applicable.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "collateral_bank_account_id": {
            "description": "The bank account holding collateral for a secured loan.",
            "type": "string"
          },
          "collateral_locked_amount": {
            "description": "The collateral amount currently locked for this loan, in cents.",
            "type": "integer"
          },
          "created_at": {
            "description": "The timestamp the loan was created",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The currency of the loan. Currently only `USD` is supported.",
            "type": "string"
          },
          "delinquent_at": {
            "description": "The timestamp the loan was marked as delinquent. Returns `null` when not applicable.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "description": {
            "description": "The description of the loan in the Column dashboard",
            "type": "string"
          },
          "disputed_at": {
            "description": "The timestamp the loan was marked as disputed. Returns `null` when not applicable.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of the loan object",
            "type": "string"
          },
          "interest_config_id": {
            "description": "ID of the interest configuration used to accrue interest receivable daily. The same interest configuration can be shared across multiple loans.",
            "type": "string"
          },
          "is_business_seasoning_days": {
            "description": "Indicates if `seasoning_days` are business days or calendar days.",
            "type": "boolean"
          },
          "is_revolving": {
            "description": "Indicates whether or not the loan is revolving. If `true` the loan can have multiple disbursements.",
            "type": "boolean"
          },
          "loan_program_id": {
            "description": "ID of the loan program for this loan.",
            "type": "string"
          },
          "maturity_date": {
            "description": "The maturity date of the loan. It is required if the loan is not revolving.",
            "nullable": true,
            "type": "string"
          },
          "max_principal_balance": {
            "description": "The max principal balance of the loan in cents. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal.",
            "type": "integer"
          },
          "paid_off_at": {
            "description": "The timestamp the loan is marked as paid off. Returns `null` when not applicable.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "primary_signer_entity_id": {
            "description": "The Column `entity_id` which the loan is related to",
            "type": "string"
          },
          "retained_by_column": {
            "description": "Indicates if this loan should be retained by Column. Loans retained by Column are not eligible for your platform to purchase.",
            "type": "boolean"
          },
          "search_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchMetadata"
              }
            ],
            "nullable": true,
            "type": "object"
          },
          "seasoning_days": {
            "description": "Number of days principal receivables will be seasoned.",
            "type": "integer"
          },
          "status": {
            "description": "The current status of the loan. Possible values: `current`, `delinquent`, `charged_off`, `in_dispute`, `canceled`, `paid_off`.",
            "type": "string"
          },
          "type": {
            "description": "The loan type. Possible values are `unsecured` and `secured`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "primary_signer_entity_id",
          "status",
          "maturity_date",
          "delinquent_at",
          "charged_off_at",
          "disputed_at",
          "paid_off_at",
          "canceled_at",
          "description",
          "allow_overpayment",
          "is_revolving",
          "currency",
          "max_principal_balance",
          "balances",
          "retained_by_column",
          "auto_sell",
          "interest_config_id",
          "loan_program_id",
          "seasoning_days",
          "is_business_seasoning_days",
          "type",
          "collateral_locked_amount"
        ],
        "type": "object"
      },
      "LoanDisbursement": {
        "description": "A loan disbursement object represents the moment when loan funds are released. It is associated to one loan object and occurs after the loan has been approved. The funds can be sent directly to the borrower or to a third-party loan servicer. Each loan can have one or multiple loan disbursements.",
        "example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1500,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "created_at": "2025-08-03T16:04:09Z",
          "currency": "USD",
          "description": "first disbursement",
          "effective_at": "2025-08-03T16:04:09Z",
          "id": "ldsb_30meChPQuHfd7jqNuUWlkqS6B9o",
          "idempotency_key": "",
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "status": "completed"
        },
        "properties": {
          "account_number_id": {
            "description": "The unique ID of the account to which the funds are disbursed",
            "type": "string"
          },
          "amount": {
            "description": "Amount (in cents) of funds disbursed to the borrower",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "The bank account to which funds are disbursed",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp the loan disbursement was created",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The currency of the loan. Currently only `USD` is supported.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan disbursement in the Column dashboard",
            "type": "string"
          },
          "effective_at": {
            "description": "The timestamp the loan disbursement was marked effective",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the loan disbursement object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the loan disbursement. Returns an empty string `\"\"` when not set.",
            "type": "string"
          },
          "is_offline": {
            "description": "Indicates if the loan disbursement is an offline disbursement. [Read more]({{lending.disbursement}}).",
            "type": "boolean"
          },
          "loan_id": {
            "description": "The unique ID of the loan object the loan disbursement is associated to",
            "type": "string"
          },
          "status": {
            "description": "The current status of the loan disbursement. Possible values: `completed`, `canceled`, `hold`, `manual_review`, `rejected`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "effective_at",
          "bank_account_id",
          "account_number_id",
          "loan_id",
          "description",
          "amount",
          "currency",
          "status",
          "idempotency_key",
          "is_offline"
        ],
        "type": "object"
      },
      "LoanInterestConfigSnapshot": {
        "description": "A snapshot defining interest rates for a specific effective date or period.",
        "properties": {
          "effective_after_days": {
            "description": "The number of days after which this config snapshot becomes effective. Either `effective_date` or `effective_after_days` may be specified, but not both.",
            "nullable": true,
            "type": "integer"
          },
          "effective_date": {
            "description": "The date in Pacific Time Zone (inclusive) on which this interest config snapshot becomes effective. Either `effective_date` or `effective_after_days` may be specified, but not both.",
            "nullable": true,
            "type": "string"
          },
          "effective_day_mode": {
            "description": "The method for rolling the effective date derived from `effective_after_days` to the next business day if it falls on a weekend or holiday. Possible values: `business_day`, `next_business_day`.",
            "type": "string"
          },
          "fixed_rate": {
            "description": "The fixed interest rate for this snapshot (4.50% would be represented as `0.045`).",
            "nullable": true,
            "type": "string"
          },
          "pivot_percentage": {
            "description": "The percentage of the pivot rate to use for variable-rate interest calculation (e.g., `1.0` for 100% of the pivot rate).",
            "nullable": true,
            "type": "string"
          },
          "pivot_relative": {
            "description": "The spread added to or subtracted from the pivot rate for variable-rate interest calculation (e.g., `0.02` for +2%).",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "LoanPayment": {
        "description": "A loan payment object represents a repayment made toward a loan. It is associated with one loan object and typically occurs after one or more loan disbursements have been made. Payments can be made by the borrower directly or through a loan servicer. [Read more]({{lending.payment}}).",
        "example": {
          "account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "amount": 1000,
          "bank_account_id": "bacc_2zI1DavEbJQbbOIJeExDVJczhqM",
          "collection_account_number_id": "",
          "collection_bank_account_id": "",
          "created_at": "2025-08-03T16:05:12Z",
          "currency": "USD",
          "description": "first payment",
          "effective_at": "2025-08-03T16:05:12Z",
          "id": "lpmt_30mdxZgaXqKELJ5xRVKKj2x3Vrz",
          "idempotency_key": "",
          "ignore_retained_balances": false,
          "interest_amount": 200,
          "is_offline": false,
          "loan_id": "loan_30mcttnSZBlSahXy6LUFzbeemlk",
          "principal_amount": 800,
          "retained_interest_amount": 0,
          "retained_principal_amount": 0,
          "status": "completed"
        },
        "properties": {
          "account_number_id": {
            "description": "The unique ID of the account to which the payment was made",
            "type": "string"
          },
          "amount": {
            "description": "Total payment amount in cents",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "The bank account to which funds are paid back to",
            "type": "string"
          },
          "collection_account_number_id": {
            "description": "ID of your collections account number",
            "type": "string"
          },
          "collection_bank_account_id": {
            "description": "ID of your collections account",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp the loan payment was created",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The currency of the loan. Currently only `USD` is supported.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan payment in the Column dashboard",
            "type": "string"
          },
          "effective_at": {
            "description": "The timestamp the loan payment was marked effective",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The ID of the loan payment object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the loan payment. Returns an empty string `\"\"` when not set.",
            "type": "string"
          },
          "ignore_retained_balances": {
            "description": "Indicates whether the loan payment was applied to sold balances only. [Read more]({{lending.payment}}).",
            "type": "boolean"
          },
          "interest_amount": {
            "description": "Total paid interest receivable",
            "type": "integer"
          },
          "is_offline": {
            "description": "Indicates whether the loan payment was made offline",
            "type": "boolean"
          },
          "loan_id": {
            "description": "The ID of the loan object the loan payment is associated to",
            "type": "string"
          },
          "principal_amount": {
            "description": "Amount of the payment applied to the loan principal",
            "type": "integer"
          },
          "retained_interest_amount": {
            "description": "Paid interest receivable owned by Column",
            "type": "integer"
          },
          "retained_principal_amount": {
            "description": "Paid principal amount owned by Column",
            "type": "integer"
          },
          "status": {
            "description": "The current status of the loan payment. Possible values: `completed`, or `returned`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "idempotency_key",
          "loan_id",
          "description",
          "status",
          "is_offline",
          "ignore_retained_balances",
          "bank_account_id",
          "account_number_id",
          "collection_bank_account_id",
          "collection_account_number_id",
          "created_at",
          "effective_at",
          "currency",
          "amount",
          "principal_amount",
          "interest_amount",
          "retained_interest_amount",
          "retained_principal_amount"
        ],
        "type": "object"
      },
      "LoanProgram": {
        "description": "Loan Program objects represent the configuration for loan programs in your platform. They define settings for loan purchases, auto-selling, and account configurations. You cannot create new loan programs on your own. Please work with your Column team / Solution Engineer to create loan programs for your platform based on your Column use cases. [Read more]({{lending}}).",
        "example": {
          "auto_sell": true,
          "auto_sell_business_day_only": true,
          "close_after_sale": false,
          "collection_account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "created_at": "2025-06-01T12:00:00Z",
          "default_interest_config_id": "icfg_2zI2JlS7Fg5vREXIbKS1qZgE73b",
          "description": "Consumer installment loans",
          "id": "lpgm_2zI2JlS7Fg5vREXIbKS1qZgE73b",
          "is_business_seasoning_days": true,
          "is_revolving": false,
          "max_days_to_purchase": 5,
          "purchase_funding_account_number_id": "acno_2zI1Da9Ro0dvk6HT2gla1H0UTyS",
          "retained_by_column": false,
          "seasoning_days": 10,
          "updated_at": "2025-06-15T08:30:00Z"
        },
        "properties": {
          "auto_sell": {
            "description": "Indicates if seasoned principals/interests should be automatically sold to your platform",
            "type": "boolean"
          },
          "auto_sell_business_day_only": {
            "description": "Whether auto-sell only occurs on business days",
            "type": "boolean"
          },
          "close_after_sale": {
            "description": "Indicates if loans that are not revolving should be closed after automatic sale. [Read more]({{lending.sale}}).",
            "type": "boolean"
          },
          "collection_account_number_id": {
            "description": "Default account number ID of your platform to deposit loan payments belonging to your platform in this loan program",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp when the loan program was created",
            "format": "date-time",
            "type": "string"
          },
          "default_interest_config_id": {
            "description": "ID of the default interest configuration for this loan program",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan program",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of the loan program",
            "type": "string"
          },
          "is_business_seasoning_days": {
            "description": "Indicates if the default `seasoning_days` are business days or calendar days",
            "type": "boolean"
          },
          "is_revolving": {
            "description": "Indicates if loans in this loan program are revolving",
            "type": "boolean"
          },
          "max_days_to_purchase": {
            "description": "Maximum number of calendar days for seasoned principals/interests to be purchased by your platform",
            "type": "integer"
          },
          "purchase_funding_account_number_id": {
            "description": "Default account number ID for your platform to fund loan purchases in this loan program",
            "type": "string"
          },
          "retained_by_column": {
            "description": "Indicates if loans in this loan program are retained by Column",
            "type": "boolean"
          },
          "seasoning_days": {
            "description": "Default number of seasoning days for loans in this loan program",
            "type": "integer"
          },
          "updated_at": {
            "description": "The timestamp when the loan program was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "description",
          "updated_at",
          "max_days_to_purchase",
          "auto_sell",
          "auto_sell_business_day_only",
          "is_revolving",
          "retained_by_column",
          "seasoning_days",
          "is_business_seasoning_days",
          "close_after_sale",
          "default_interest_config_id",
          "purchase_funding_account_number_id",
          "collection_account_number_id"
        ],
        "type": "object"
      },
      "LoanSale": {
        "description": "A loan sale object represents the sale of a loan by Column to your platform. When a loan is sold, you purchase the principal and interest receivables from Column, and are paid a servicing fee. [Read more]({{lending.sale}}).",
        "properties": {
          "amount": {
            "description": "The total sale amount in cents",
            "type": "integer"
          },
          "created_at": {
            "description": "The timestamp at which the loan sale was created",
            "format": "date-time",
            "type": "string"
          },
          "currency_code": {
            "description": "The currency code of the sale amount. Currently only `USD` is supported.",
            "type": "string"
          },
          "description": {
            "description": "The description of the loan sale",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of the loan sale object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the loan sale",
            "nullable": true,
            "type": "string"
          },
          "loan_id": {
            "description": "The ID of the loan being sold",
            "type": "string"
          },
          "paid_servicing_fee": {
            "description": "The amount of servicing fees in cents paid to your platform by Column",
            "type": "integer"
          },
          "purchase_funding_account_number_id": {
            "description": "The ID of the account number in your platform that was funded to complete this sale",
            "type": "string"
          },
          "sold_at": {
            "description": "The timestamp at which the loan sale was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "sold_interest_receivable": {
            "description": "The amount of interest receivable in cents sold to your platform",
            "type": "integer"
          },
          "sold_principal_receivable": {
            "description": "The amount of principal receivable in cents sold to your platform",
            "type": "integer"
          },
          "updated_at": {
            "description": "The timestamp at which the loan sale was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "idempotency_key",
          "loan_id",
          "sold_at",
          "amount",
          "currency_code",
          "sold_principal_receivable",
          "sold_interest_receivable",
          "paid_servicing_fee",
          "purchase_funding_account_number_id",
          "description"
        ],
        "type": "object"
      },
      "LoanSaleSummary": {
        "description": "Loan sale summaries are aggregated from our `loan_daily_summary` reports. [Read more]({{lending.report}}).",
        "example": {
          "currency_code": "USD",
          "effective_date": "2025-08-07",
          "loan_count": 2,
          "loans": [
            {
              "fee": "100",
              "id": "loan_3112JdNBZLqeFREfkTIkGZR0fpw",
              "interest": "1000",
              "loan_program_id": "lpgm_3112JdzqLGdrBCljdV6UPSKqhJf",
              "principal": "100000",
              "sale_price": "100900"
            },
            {
              "fee": "100",
              "id": "loan_3112Jm6zh5BBnQQUq5BODMzODWY",
              "interest": "1000",
              "loan_program_id": "lpgm_3112JqzDIjsvbsJ5XYLA9amU1VS",
              "principal": "100000",
              "sale_price": "100900"
            }
          ],
          "total_fee": "200",
          "total_interest": "2000",
          "total_principal": "200000",
          "total_sale_price": "201800"
        },
        "properties": {
          "currency_code": {
            "description": "Currency of the loan",
            "type": "string"
          },
          "effective_date": {
            "description": "Effective date of loan sales. Format: `YYYY-MM-DD`",
            "type": "string"
          },
          "loan_count": {
            "description": "Number of loans for sale",
            "type": "integer"
          },
          "loans": {
            "description": "List of loans with loan details for sale",
            "items": {
              "$ref": "#/components/schemas/LoanSummaryDistill"
            },
            "type": "array"
          },
          "total_fee": {
            "description": "Total fee amount in cents of loans for sale",
            "type": "string"
          },
          "total_interest": {
            "description": "Total interest amount in cents of loans for sale",
            "type": "string"
          },
          "total_principal": {
            "description": "Total principal amount in cents of loans for sale",
            "type": "string"
          },
          "total_sale_price": {
            "description": "Total sale price for loans at the end of the effective date",
            "type": "string"
          }
        },
        "required": [
          "effective_date",
          "currency_code",
          "total_sale_price",
          "total_principal",
          "total_interest",
          "total_fee",
          "loan_count",
          "loans"
        ],
        "type": "object"
      },
      "LoanSummary": {
        "description": "Loan Summary objects represent daily snapshots of loan performance and financial data. [Read more]({{lending.report}}).",
        "properties": {
          "currency_code": {
            "description": "The currency code of the loan",
            "type": "string"
          },
          "daily_accrued_fee": {
            "description": "The servicing fee amount accrued on this date, in cents",
            "type": "integer"
          },
          "daily_accrued_interest": {
            "description": "The interest amount accrued on this date, in cents",
            "type": "integer"
          },
          "daily_disbursed_principal": {
            "description": "The principal amount disbursed on this date, in cents",
            "type": "integer"
          },
          "daily_fee_rate": {
            "description": "The daily servicing fee rate applied on this date",
            "type": "number"
          },
          "daily_interest_rate": {
            "description": "The daily interest rate applied on this date",
            "type": "number"
          },
          "daily_paid_fee": {
            "description": "The servicing fee amount paid on this date in loan sales, in cents",
            "type": "integer"
          },
          "daily_paid_interest": {
            "description": "The interest amount paid on this date, in cents",
            "type": "integer"
          },
          "daily_paid_principal": {
            "description": "The principal amount paid on this date, in cents",
            "type": "integer"
          },
          "daily_retained_accrued_interest": {
            "description": "The retained interest amount accrued on this date, in cents",
            "type": "integer"
          },
          "daily_retained_paid_interest": {
            "description": "The retained interest amount paid on this date, in cents",
            "type": "integer"
          },
          "daily_sold_interest": {
            "description": "The interest amount sold on this date, in cents",
            "type": "integer"
          },
          "daily_sold_principal": {
            "description": "The principal amount sold on this date, in cents",
            "type": "integer"
          },
          "effective_date": {
            "description": "The date for which this summary data is effective. Format: `YYYY-MM-DD`.",
            "type": "string"
          },
          "retained_by_column": {
            "description": "Indicates whether the loan is retained by Column",
            "type": "boolean"
          },
          "sale_price": {
            "description": "The sale price of the loan, in cents",
            "type": "integer"
          },
          "status": {
            "description": "The current status of the loan",
            "type": "string"
          },
          "total_fee": {
            "description": "The total servicing fee amount of the loan, in cents",
            "type": "integer"
          },
          "total_interest": {
            "description": "The total interest amount of the loan, in cents",
            "type": "integer"
          },
          "total_principal": {
            "description": "The total principal amount of the loan, in cents",
            "type": "integer"
          },
          "total_retained_interest": {
            "description": "The total interest amount retained by Column, in cents",
            "type": "integer"
          },
          "total_retained_principal": {
            "description": "The total principal amount retained by Column, in cents",
            "type": "integer"
          },
          "total_seasoned_fee": {
            "description": "The total servicing fee amount that has met seasoning requirements, in cents",
            "type": "integer"
          },
          "total_seasoned_interest": {
            "description": "The total interest amount that has met seasoning requirements, in cents",
            "type": "integer"
          },
          "total_seasoned_principal": {
            "description": "The total principal amount that has met seasoning requirements, in cents",
            "type": "integer"
          }
        },
        "required": [
          "effective_date",
          "status",
          "retained_by_column",
          "currency_code",
          "sale_price",
          "total_principal",
          "total_retained_principal",
          "total_seasoned_principal",
          "daily_disbursed_principal",
          "daily_paid_principal",
          "daily_sold_principal",
          "daily_interest_rate",
          "total_interest",
          "total_retained_interest",
          "total_seasoned_interest",
          "daily_accrued_interest",
          "daily_retained_accrued_interest",
          "daily_paid_interest",
          "daily_retained_paid_interest",
          "daily_sold_interest",
          "daily_fee_rate",
          "total_fee",
          "total_seasoned_fee",
          "daily_accrued_fee",
          "daily_paid_fee"
        ],
        "type": "object"
      },
      "LoanSummaryDistill": {
        "properties": {
          "fee": {
            "description": "Fee in cents of the loan for sale",
            "type": "string"
          },
          "id": {
            "description": "ID of the loan",
            "type": "string"
          },
          "interest": {
            "description": "Interest in cents of the loan for sale",
            "type": "string"
          },
          "loan_program_id": {
            "description": "ID of the loan program",
            "type": "string"
          },
          "principal": {
            "description": "Principal in cents of the loan for sale",
            "type": "string"
          },
          "sale_price": {
            "description": "Sale price in cents of the loan",
            "type": "string"
          }
        },
        "required": [
          "id",
          "loan_program_id",
          "sale_price",
          "principal",
          "interest",
          "fee"
        ],
        "type": "object"
      },
      "LoanSummaryHistory": {
        "properties": {
          "history": {
            "description": "List of loan summaries",
            "items": {
              "$ref": "#/components/schemas/LoanSummary"
            },
            "type": "array"
          },
          "loan_id": {
            "description": "The ID of the loan",
            "type": "string"
          }
        },
        "required": [
          "loan_id",
          "history"
        ],
        "type": "object"
      },
      "Lockbox": {
        "description": "A lockbox that receives mail and checks for an account.",
        "properties": {
          "account_number_id": {
            "description": "ID of the account number linked to the lockbox",
            "example": "acno_3VqZl7yJSJXOQp5X4qiPOusL6ga",
            "type": "string"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Mailing address for the lockbox",
            "nullable": true,
            "type": "object"
          },
          "bank_account_id": {
            "description": "ID of the bank account linked to the lockbox",
            "example": "bacc_3VqZl1eEeP2cRXib4BLHfNCoGb7",
            "type": "string"
          },
          "created_at": {
            "description": "ISO 8601 timestamp when the lockbox was created",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "Optional description of the lockbox",
            "example": "Operations lockbox",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "Unique ID for the lockbox",
            "example": "lbox_3VqZkz3FNgKx24u8FQeGMB1L4mU",
            "type": "string"
          },
          "idempotency_key": {
            "description": "Idempotency key used to create the lockbox, if provided.",
            "example": "create-lockbox-2026-06-08",
            "type": "string"
          },
          "processing_center": {
            "description": "Processing center assigned to the lockbox.",
            "enum": [
              "CA",
              "NY",
              "TX"
            ],
            "example": "TX",
            "type": "string"
          },
          "status": {
            "description": "The current status of the lockbox. Possible values:\n- `active`: Lockbox is ready to accept checks.\n- `closed`: Lockbox is deleted, and no more checks will be accepted.\n- `pending`: Lockbox is still under review, and not ready to accept checks yet.",
            "enum": [
              "active",
              "closed",
              "pending"
            ],
            "example": "active",
            "type": "string"
          },
          "type": {
            "description": "Type of lockbox address.",
            "enum": [
              "cmra",
              "registered_agent"
            ],
            "example": "cmra",
            "type": "string"
          },
          "updated_at": {
            "description": "ISO 8601 timestamp when the lockbox was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "bank_account_id",
          "account_number_id",
          "idempotency_key",
          "status",
          "processing_center",
          "address",
          "type",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "MailCheckRequest": {
        "properties": {
          "attachment_document_id": {
            "description": "ID of a document to include as an attachment with the mailed check.",
            "type": "string"
          },
          "courtesy_of": {
            "description": "Name of the person or organization sending the check on behalf of the payor.",
            "nullable": true,
            "type": "string"
          },
          "delivery_method": {
            "description": "Delivery method for the check. Can be one of `usps_first_class`, `fedex_two_day`, or `fedex_overnight`. Defaults to `usps_first_class`.",
            "nullable": true,
            "type": "string"
          },
          "memo": {
            "description": "Memo line text to print on the check.",
            "nullable": true,
            "type": "string"
          },
          "message": {
            "description": "Message to the payee",
            "type": "string"
          },
          "payee_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The mailing address of the payee where the check will be sent. `line_1` and `line_2` are each limited to 35 characters, and their combined length must not exceed 50 characters."
          },
          "payee_company": {
            "description": "Company name of the payee, if applicable.",
            "nullable": true,
            "type": "string"
          },
          "payor_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The return address of the payor to print on the check envelope. When provided, `line_1` and `line_2` are each limited to 35 characters, and their combined length must not exceed 50 characters.",
            "nullable": true,
            "type": "object"
          },
          "payor_name": {
            "description": "Name of the payor to print on the check.",
            "nullable": true,
            "type": "string"
          },
          "signatory": {
            "description": "Name of the signatory to print on the check.",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "message",
          "memo",
          "payee_company",
          "payee_address",
          "attachment_document_id",
          "payor_name",
          "courtesy_of",
          "payor_address",
          "signatory"
        ],
        "type": "object"
      },
      "NotificationChanges": {
        "properties": {
          "account_number": {
            "description": "Latest account number of the counterparty",
            "type": "string"
          },
          "account_type": {
            "description": "Account type derived from the corrected ACH transaction code, when supported",
            "type": "string"
          },
          "change_code": {
            "description": "NACHA code identifying the information corrected by the Notification of Change",
            "type": "string"
          },
          "receiver_id": {
            "description": "Latest accounting reference number by which the beneficiary should be referred by the originator",
            "type": "string"
          },
          "routing_number": {
            "description": "Latest routing number of the counterparty",
            "type": "string"
          },
          "transaction_code": {
            "description": "Corrected ACH transaction code, when supplied by the Notification of Change",
            "type": "integer"
          }
        },
        "required": [
          "account_number",
          "routing_number",
          "receiver_id",
          "change_code"
        ],
        "type": "object"
      },
      "OverdraftAlertAmount": {
        "properties": {
          "cents": {
            "description": "Amount in cents.",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "Amount currency. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PersonDetails": {
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation.",
            "nullable": true,
            "type": "object"
          },
          "country_of_citizenship": {
            "description": "Country of citizenship of the individual. Country of citizenship does not need to match the issuing country of an identity document. ISO 3166-1 Alpha-2 Country Code (e.g., `US`, `FR`, `UK`, `DE`, ...).",
            "type": "string"
          },
          "date_of_birth": {
            "description": "Date of birth (`YYYY-MM-DD`)",
            "type": "string"
          },
          "drivers_license": {
            "description": "Driver's License Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`.",
            "nullable": true,
            "type": "object"
          },
          "email": {
            "description": "Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the Email field returns an empty string (`\"\"`).",
            "type": "string"
          },
          "employment_status": {
            "description": "Employment status of the individual.",
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "type": "string"
          },
          "first_name": {
            "description": "First name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "income": {
            "description": "Estimated pre-tax annual income. Accepts an array to allow passing income ranges.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "is_beneficial_owner": {
            "description": "Boolean value which specifies if this person is a designated beneficial owner.",
            "type": "boolean"
          },
          "is_control_person": {
            "description": "Boolean value which specifies if this person is a designated control person.",
            "type": "boolean"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "type": "boolean"
          },
          "job_title": {
            "description": "Job title of the beneficial owner or control person.",
            "type": "string"
          },
          "last_name": {
            "description": "Last name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the individual expects to make international payments.",
            "type": "boolean"
          },
          "middle_name": {
            "description": "Middle name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "national_id": {
            "description": "National ID Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`.",
            "nullable": true,
            "type": "object"
          },
          "occupation": {
            "description": "Industry of employment or occupation of the individual.",
            "type": "string"
          },
          "ownership_percentage": {
            "description": "Percentage ownership, specified as an integer, of the beneficial owner",
            "type": "integer"
          },
          "passport": {
            "description": "Passport Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`."
          },
          "pep_status": {
            "description": "Politically Exposed Person screening status. Allowed values: `not_checked`, `no`, `yes`, `potential`.",
            "type": "string"
          },
          "phone_number": {
            "description": "Phone number of the individual in the E.164 format. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the phone number field returns an empty string (`\"\"`).",
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "role": {
            "description": "Individual's role or job title at their place of employment.",
            "type": "string"
          },
          "source_of_income": {
            "description": "Sources of income for the individual.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ssn": {
            "description": "Social Security Number. SSN is required for U.S. citizens. ITIN may be shared in place of SSN. If SSN is provided, country of citizenship is not required. When left blank (i.e., for non-U.S. citizens) the SSN field returns an empty string (`\"\"`).",
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name",
          "middle_name",
          "ssn",
          "date_of_birth",
          "email",
          "passport"
        ],
        "type": "object"
      },
      "QueryFXQuoteRequest": {
        "properties": {
          "book_directly": {
            "description": "If `true`, the quote will be booked immediately upon creation.",
            "type": "boolean"
          },
          "buy_amount": {
            "description": "Amount to buy in the smallest unit of the buy currency.",
            "format": "int64",
            "type": "integer"
          },
          "buy_currency_code": {
            "description": "The three-letter ISO 4217 currency code of the currency to buy.",
            "type": "string"
          },
          "fx_fee_bps": {
            "description": "Foreign exchange fee in basis points.",
            "nullable": true,
            "type": "number"
          },
          "rate_date": {
            "description": "The calendar date to use for the exchange rate. Format: `YYYY-MM-DD`. If not provided, today's rate is used.",
            "format": "date",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "buy_amount",
          "buy_currency_code",
          "rate_date",
          "book_directly",
          "fx_fee_bps"
        ],
        "type": "object"
      },
      "RealtimeRFP": {
        "description": "The Realtime Request For Payment (RFP) object represents the current state of a single Realtime RFP initiated by or received by Column. Realtime RFPs are used to initiate and receive debit requests called Request for Payments over FedNow or the RTP network. The Realtime RFP object exposes all relevant information about the Realtime RFP to developers.",
        "properties": {
          "accepted_at": {
            "description": "The timestamp when the Realtime RFP was accepted",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "account_number_id": {
            "description": "ID of the account number that is sending/receiving the RFP",
            "type": "string"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending/receiving the RFP",
            "type": "string"
          },
          "canceled_at": {
            "description": "The timestamp at which the Realtime RFP was canceled",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp at which the Realtime RFP was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that is receiving/sending the RFP",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "description": {
            "description": "A description of the RFP visible in account statements",
            "type": "string"
          },
          "end_to_end_id": {
            "description": "A unique identifier for the transfer that is passed through to the receiving bank. This is used for reconciliation purposes between originator and receiver.",
            "nullable": true,
            "type": "string"
          },
          "expired_at": {
            "description": "The timestamp when the Realtime RFP expired",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique id of the RFP object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the Realtime RFP",
            "nullable": true,
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp when the Realtime RFP was initiated",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "is_incoming": {
            "description": "Indicates the Realtime RFP is incoming (`true`) or outgoing (`false`)",
            "type": "boolean"
          },
          "is_on_us": {
            "description": "Indicates the Realtime RFP is between two bank accounts held at Column",
            "type": "boolean"
          },
          "presented_at": {
            "description": "Time the RFP was presented",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "realtime_transfer_id": {
            "description": "Realtime transfer object of a credit transfer that was sent/received to settle an accepted RFP",
            "nullable": true,
            "type": "string"
          },
          "received_at": {
            "description": "Time the RFP was received",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp at which the Realtime transfer was rejected after acceptance without posting",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "rejection_additional_info": {
            "description": "Contains further information on the rejection reason in free-formatted text, if available",
            "nullable": true,
            "type": "string"
          },
          "rejection_code": {
            "description": "Code representing a reason for Realtime payment rejection",
            "nullable": true,
            "type": "string"
          },
          "rejection_code_description": {
            "description": "Description for the `rejection_code`",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The current status of the Realtime transfer. Possible statuses are `initiated`, `presented`, `received`, `accepted`, `completed`, `rejected`, `expired`, `canceled`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "description",
          "bank_account_id",
          "account_number_id",
          "counterparty_id",
          "is_incoming",
          "is_on_us",
          "status",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "RealtimeRFPList": {
        "properties": {
          "has_more": {
            "description": "Whether more RFPs are available",
            "type": "boolean"
          },
          "realtime_rfps": {
            "description": "List of realtime requests for payment",
            "items": {
              "$ref": "#/components/schemas/RealtimeRFP"
            },
            "type": "array"
          }
        },
        "required": [
          "realtime_rfps",
          "has_more"
        ],
        "type": "object"
      },
      "RealtimeReturnRequest": {
        "description": "The Realtime Return Request represents a request to return funds from a previously completed Realtime transfer.",
        "properties": {
          "accepted_at": {
            "description": "The timestamp at which the Return Request was accepted",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique id of the Return Request object",
            "type": "string"
          },
          "is_incoming": {
            "description": "Indicates whether the Return Request is incoming (`true`) or outgoing (`false`)",
            "type": "boolean"
          },
          "original_transfer_id": {
            "description": "ID of the original Realtime transfer for which the return of funds is being requested",
            "nullable": true,
            "type": "string"
          },
          "pending_at": {
            "description": "The timestamp at which the Return Request was created and status was set to pending",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "reason_code": {
            "description": "Code representing a reason for the Return Request. Reason code types include: AC03, AM09, CUST, DUPL, FRAD, TECH, and UPAY",
            "nullable": true,
            "type": "string"
          },
          "reason_code_description": {
            "description": "Description for the `reason_code`. Reason code descriptions include: AC03 - Account number is invalid or has been closed, AM09 - Amount is not the amount agreed or expected, CUST - Cancellation requested by the Debtor, DUPL - Payment is a duplicate of another payment, FRAD - Cancellation requested following a transaction that was originated fraudulently, TECH - Cancellation requested following technical problems resulting in an erroneous transaction, UPAY - Payment is not justified (missing critical information)",
            "nullable": true,
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp at which the Return Request was rejected",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_transfer_id": {
            "description": "ID of the Realtime transfer created when the Return Request is accepted, representing the return of funds",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The current status of the Return Request. Possible statuses are `pending`, `accepted`, and `rejected`.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "is_incoming"
        ],
        "type": "object"
      },
      "RealtimeReturnRequestsList": {
        "properties": {
          "has_more": {
            "description": "Whether more return requests are available",
            "type": "boolean"
          },
          "realtime_return_requests": {
            "description": "List of realtime return requests",
            "items": {
              "$ref": "#/components/schemas/RealtimeReturnRequest"
            },
            "type": "array"
          }
        },
        "required": [
          "realtime_return_requests",
          "has_more"
        ],
        "type": "object"
      },
      "RealtimeTransfer": {
        "description": "The Realtime transfer object represents the current state of a single Realtime transfer initiated by or received by Column. Realtime transfers are used to send and receive money over FedNow or RTP. The Realtime transfer object exposes all relevant information about the Realtime transfer to developers.",
        "properties": {
          "accepted_at": {
            "description": "The timestamp when the realtime transfer was accepted without posting",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "account_number_id": {
            "description": "ID of the account number that is sending/receiving the transfer",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allows the account to go negative for an outgoing transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending/receiving the transfer",
            "type": "string"
          },
          "blocked_at": {
            "description": "The timestamp when the realtime transfer was blocked after accepting without posting",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "canceled_at": {
            "description": "The timestamp when a held realtime transfer was canceled and the funds returned to the available balance",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp when the realtime transfer was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that is receiving/sending the transfer",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp when the realtime transfer was created",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the realtime transfer.",
            "nullable": true,
            "type": "object"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer visible in account statements",
            "type": "string"
          },
          "end_to_end_id": {
            "description": "A unique identifier for the transfer that is passed through to the receiving bank. This is used for reconciliation purposes between originator and receiver. This ID may not be populated on an incoming Realtime transfer.",
            "nullable": true,
            "type": "string"
          },
          "hold_at": {
            "description": "The timestamp when the realtime transfer entered the hold state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the realtime transfer",
            "nullable": true,
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp when the realtime transfer was initiated",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "is_incoming": {
            "description": "Indicates whether the realtime transfer was incoming ( `true` or outgoing `false` ).",
            "type": "boolean"
          },
          "is_on_us": {
            "description": "Indicates whether the realtime transfer was between two bank accounts held at Column",
            "type": "boolean"
          },
          "manual_review_approved_at": {
            "description": "The timestamp when the realtime transfer was approved after manual review",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "manual_review_at": {
            "description": "The timestamp when the realtime transfer went into the manual review state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "manual_review_rejected_at": {
            "description": "The timestamp when the realtime transfer was rejected after manual review",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pending_at": {
            "description": "The timestamp when the realtime transfer was accepted without posting and is pending",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pre_review_at": {
            "description": "The timestamp when transfer approval became required for the realtime transfer",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "realtime_rfp_id": {
            "description": "The linked realtime request for payment ID",
            "nullable": true,
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp when the realtime transfer was rejected after acceptance without posting",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "rejection_additional_info": {
            "description": "Contains further information on the payment status reason in free-formatted text, if available",
            "nullable": true,
            "type": "string"
          },
          "rejection_code": {
            "description": "Code representing a reason for rejecting realtime payment",
            "nullable": true,
            "type": "string"
          },
          "rejection_code_description": {
            "description": "Description for the `rejection_reason_code`",
            "nullable": true,
            "type": "string"
          },
          "return_pair_transfer_id": {
            "description": "Provides a reference to a pair return transfer created when return was accepted. It is either the original transfer or the return transfer ID.",
            "nullable": true,
            "type": "string"
          },
          "reviews": {
            "description": "The transfer approval decisions recorded on the realtime transfer. Each entry is a dashboard user approving or rejecting the transfer while it was in `pre_review`. This list is only populated when transfer approvals are enabled for the platform, or for the API key that created the transfer; otherwise it is omitted from the response.",
            "items": {
              "$ref": "#/components/schemas/TransferReview"
            },
            "type": "array"
          },
          "status": {
            "description": "The current status of the realtime transfer. Possible statuses are `pre_review`, `hold`, `canceled`, `initiated`, `pending`, `accepted`, `completed`, `blocked`, `rejected`, `manual_review`, `manual_review_approved`, `manual_review_rejected`.",
            "enum": [
              "pre_review",
              "hold",
              "canceled",
              "initiated",
              "pending",
              "accepted",
              "completed",
              "blocked",
              "rejected",
              "manual_review",
              "manual_review_approved",
              "manual_review_rejected"
            ],
            "type": "string"
          },
          "ultimate_debtor_counterparty_id": {
            "description": "ID of the ultimate debtor counterparty that was set on the transfer",
            "nullable": true,
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the realtime transfer was updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "bank_account_id",
          "account_number_id",
          "counterparty_id",
          "status",
          "is_incoming",
          "is_on_us",
          "allow_overdraft",
          "description",
          "amount",
          "currency_code",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "RealtimeTransfersList": {
        "properties": {
          "has_more": {
            "description": "Whether more transfers are available",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of realtime transfers",
            "items": {
              "$ref": "#/components/schemas/RealtimeTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "RejectRealtimeRFP": {
        "properties": {
          "rejection_reason": {
            "description": "Optional rejection reason text",
            "maxLength": 105,
            "type": "string"
          }
        },
        "type": "object"
      },
      "RejectRealtimeReturnRequest": {
        "properties": {
          "rejection_reason": {
            "description": "Reason for rejecting the return request",
            "type": "string"
          }
        },
        "type": "object"
      },
      "RejectWireReturnRequest": {
        "properties": {
          "additional_info": {
            "description": "Additional information about the rejection. Maximum 105 characters.",
            "type": "string"
          },
          "reject_reason": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WireReturnRequestRejectReason"
              }
            ],
            "description": "The reason for rejecting the return request. Possible values: `beneficiary_account_closed`, `non_sufficient_funds`, `funds_already_returned`, `rejected_by_beneficiary`, `legal_decision`, `no_response_from_beneficiary`."
          }
        },
        "required": [
          "reject_reason",
          "additional_info"
        ],
        "type": "object"
      },
      "ReturnInternationalWireRequest": {
        "properties": {
          "message_to_originator_bank": {
            "description": "Message to include with the return",
            "type": "string"
          },
          "return_reason": {
            "description": "The reason for returning the transfer. Possible values: `incorrect_beneficiary_account`, `beneficiary_account_blocked`, `incorrect_amount`, `beneficiary_mismatch`, `refused_by_beneficiary`, `cancellation_requested`, `fraud`, `compliance_rejected`, `missing_originator_data`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReturnRealtimeTransferParams": {
        "properties": {
          "reason": {
            "description": "Return reason",
            "enum": [
              "incorrect_beneficiary_account",
              "beneficiary_account_blocked",
              "incorrect_amount",
              "beneficiary_mismatch",
              "refused_by_beneficiary",
              "requested_by_originator",
              "fraud",
              "compliance_rejected"
            ],
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "ReverseACHTransferRequest": {
        "properties": {
          "description": {
            "description": "Description for the reversal.",
            "type": "string"
          },
          "reason": {
            "description": "The reason for reversing the ACH transfer.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReverseWireTransferRequest": {
        "properties": {
          "allow_overdraft": {
            "description": "Allow the account to go negative for the reversal.",
            "type": "boolean"
          },
          "description": {
            "description": "Description for the wire reversal. Maximum length: `255` characters.",
            "type": "string"
          },
          "reason": {
            "description": "The reason for reversing the wire transfer.",
            "type": "string"
          }
        },
        "required": [
          "reason"
        ],
        "type": "object"
      },
      "SearchMetadata": {
        "description": "Search-specific metadata returned when a query is provided.",
        "properties": {
          "highlights": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "Matched field fragments with highlighted terms",
            "type": "object"
          },
          "score": {
            "description": "Relevance score",
            "format": "double",
            "type": "number"
          }
        },
        "type": "object"
      },
      "SettlementReport": {
        "description": "The settlement report object is a pointer to a settlement report generated by Column. Settlement reports contain data about historical bank account balances, and historical bank account transactions (book transfers, ACH, and wires).",
        "properties": {
          "bai2_document_id": {
            "description": "The ID of the BAI2 document",
            "type": "string"
          },
          "columns": {
            "description": "List of columns in the settlement report. Refer to Reporting Guidance for more details.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "completed_at": {
            "description": "The timestamp the settlement report was generated successfully",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp the settlement report was scheduled",
            "format": "date-time",
            "type": "string"
          },
          "csv_document_id": {
            "description": "Document ID to download the CSV format of the settlement report",
            "type": "string"
          },
          "from_date": {
            "description": "Starting date (inclusive, from the beginning of `from_date` in `time_zone`) of transactions included in the settlement report",
            "format": "date",
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for the object",
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp the settlement report was initiated to be processed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "json_document_id": {
            "description": "Document ID to download the JSON format of the settlement report",
            "type": "string"
          },
          "parquet_document_id": {
            "description": "Document ID to download the Parquet format of the settlement report",
            "type": "string"
          },
          "pdf_document_id": {
            "description": "The ID of the PDF document",
            "type": "string"
          },
          "row_count": {
            "description": "Total number of records in the settlement report",
            "nullable": true,
            "type": "integer"
          },
          "statement_subject": {
            "description": "The subject of the statement",
            "nullable": true,
            "type": "string"
          },
          "statement_subject_description": {
            "description": "Description of the statement subject",
            "type": "string"
          },
          "status": {
            "description": "The current status of the report. Either `scheduled` or `completed`. Reports remain `scheduled` until generation succeeds, at which point they transition to `completed`.",
            "type": "string"
          },
          "time_zone": {
            "description": "Time zone of the settlement report to decide day boundaries. It is a value defined in the IANA TZ database (e.g., America/Los_Angeles, UTC, etc.).",
            "type": "string"
          },
          "to_date": {
            "description": "Ending date (inclusive, up to the end of `to_date` in `time_zone`) of transactions included in the settlement report",
            "format": "date",
            "type": "string"
          },
          "type": {
            "description": "Settlement report type. Can be `bank_account_summary`, `bank_account_transaction`, `bank_account_daily_statement`, `loan_daily_summary`.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp the settlement report was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "type",
          "status",
          "time_zone",
          "from_date",
          "to_date",
          "initiated_at",
          "completed_at",
          "row_count",
          "columns",
          "csv_document_id",
          "json_document_id",
          "parquet_document_id",
          "bai2_document_id",
          "pdf_document_id",
          "statement_subject"
        ],
        "type": "object"
      },
      "SettlementReportRequest": {
        "properties": {
          "from_date": {
            "description": "Starting date (inclusive) of transactions included in the settlement report",
            "format": "date",
            "type": "string"
          },
          "statement_subject_id": {
            "description": "The subject of the statement",
            "nullable": true,
            "type": "string"
          },
          "to_date": {
            "description": "Ending date (inclusive) of transactions included in the settlement report",
            "format": "date",
            "type": "string"
          },
          "type": {
            "description": "Settlement report type. Can be `bank_account_summary`, `bank_account_transaction`, `loan_daily_summary`.",
            "type": "string"
          }
        },
        "required": [
          "from_date",
          "to_date",
          "type"
        ],
        "type": "object"
      },
      "SimulateCreateTaxFormRequest": {
        "properties": {
          "entity_id": {
            "description": "The entity ID to create the tax form for",
            "type": "string"
          },
          "tax_year": {
            "description": "The tax year for the form",
            "type": "integer"
          },
          "type": {
            "description": "The type of tax form to create",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "tax_year",
          "type"
        ],
        "type": "object"
      },
      "SimulateDepositIssuedCheckRequest": {
        "properties": {
          "account_number_id": {
            "description": "The account number ID to deposit an externally issued check against",
            "type": "string"
          },
          "check_number": {
            "description": "The externally issued check number to deposit",
            "format": "int64",
            "type": "integer"
          },
          "check_transfer_id": {
            "description": "The ID of the check transfer to deposit",
            "type": "string"
          },
          "deposited_amount": {
            "description": "The amount to deposit, used for positive pay testing",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "SimulateRealtimeReceiveCreditRequest": {
        "properties": {
          "amount": {
            "description": "Amount (in cents) to credit the account. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "destination_account_number_id": {
            "description": "Identifier for the account to credit",
            "type": "string"
          }
        },
        "required": [
          "destination_account_number_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "SimulateRealtimeReceiveCreditResponse": {
        "description": "Empty response object",
        "type": "object"
      },
      "SimulateRealtimeReceiveRFPRequest": {
        "properties": {
          "amount": {
            "description": "Amount (in cents) to credit the account. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "destination_account_number_id": {
            "description": "Identifier for the account to credit",
            "type": "string"
          }
        },
        "required": [
          "destination_account_number_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "SimulateRealtimeReceiveRFPResponse": {
        "description": "Empty response object",
        "type": "object"
      },
      "SimulateReceiveACHTransferRequest": {
        "properties": {
          "amount": {
            "description": "Amount in cents. e.g. $1.75 would be represented by 175",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "destination_account_number_id": {
            "description": "Identifier for the destination account number",
            "type": "string"
          }
        },
        "required": [
          "destination_account_number_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "SimulateReceiveWireDrawdownRequest": {
        "properties": {
          "amount": {
            "description": "Amount (in cents) to credit the account. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "beneficiary_counterparty_id": {
            "description": "Optional counterparty ID for the beneficiary",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "destination_account_number_id": {
            "description": "Identifier for the destination account number",
            "type": "string"
          }
        },
        "required": [
          "destination_account_number_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "SimulateReceiveWireRequest": {
        "properties": {
          "amount": {
            "description": "Amount (in cents) to credit the account. e.g. $1.75 would be represented by 175",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "destination_account_number_id": {
            "description": "Identifier for the destination account number",
            "type": "string"
          }
        },
        "required": [
          "destination_account_number_id",
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "SimulateReceiveWireReturnRequestRequest": {
        "properties": {
          "wire_transfer_id": {
            "description": "The ID of the wire transfer",
            "type": "string"
          }
        },
        "required": [
          "wire_transfer_id"
        ],
        "type": "object"
      },
      "SimulateSettleACHTransferRequest": {
        "properties": {
          "ach_transfer_id": {
            "description": "The ID of the ACH transfer to settle",
            "type": "string"
          }
        },
        "required": [
          "ach_transfer_id"
        ],
        "type": "object"
      },
      "SimulateSettleCheckTransferRequest": {
        "properties": {
          "check_transfer_id": {
            "description": "The ID of the check transfer to settle",
            "type": "string"
          }
        },
        "required": [
          "check_transfer_id"
        ],
        "type": "object"
      },
      "SimulateSettleWireTransferRequest": {
        "properties": {
          "wire_transfer_id": {
            "description": "The ID of the wire transfer to settle",
            "type": "string"
          }
        },
        "required": [
          "wire_transfer_id"
        ],
        "type": "object"
      },
      "SubmitAdditionalRequirementsResponse": {
        "properties": {
          "additional_requirements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EntityAdditionalRequirementsJSON"
              }
            ],
            "description": "The additional information Column needs about this entity to complete onboarding, or `null` if no additional requirements are pending.",
            "nullable": true,
            "type": "object"
          },
          "entity_id": {
            "description": "ID of the entity these additional requirements belong to.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp at which the additional requirements were last updated.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "entity_id",
          "updated_at",
          "additional_requirements"
        ],
        "type": "object"
      },
      "SwiftTracking": {
        "example": {
          "cancellation_reason": null,
          "cancellation_status": null,
          "completed_amount": null,
          "completed_at": null,
          "completed_currency_code": null,
          "events": [
            {
              "cancellation_reason": null,
              "cancellation_status": null,
              "cancellation_status_reason": null,
              "charge_bearer": "DEBT",
              "charges": null,
              "fx_rate": null,
              "instructed_amount": 500,
              "instructed_currency_code": "EUR",
              "instructed_fi": null,
              "is_cover_transfer_event": false,
              "network_reference": "20230821CLNOUS66AXXX0161234567",
              "settled_amount": 500,
              "settled_currency_code": "EUR",
              "transfer_status": "pending",
              "transfer_status_reason": "Credit transfer has been forwarded to the next bank that does not provide tracking service",
              "type": "transfer_initiated",
              "updated_at": "2023-08-22T04:01:02Z",
              "updated_by": "CLNOUS66XXX"
            },
            {
              "cancellation_reason": null,
              "cancellation_status": null,
              "cancellation_status_reason": null,
              "charge_bearer": "DEBT",
              "charges": null,
              "fx_rate": null,
              "instructed_amount": 500,
              "instructed_currency_code": "EUR",
              "instructed_fi": null,
              "is_cover_transfer_event": false,
              "network_reference": "swi00004-2023-08-22T04:03:08.44682.781207Z",
              "settled_amount": 500,
              "settled_currency_code": "EUR",
              "transfer_status": "pending",
              "transfer_status_reason": "Credit transfer has been forwarded to the next bank that does not provide tracking service",
              "type": "transfer_initiated",
              "updated_at": "2023-08-22T04:03:33Z",
              "updated_by": "CHASUS33XXX"
            }
          ],
          "id": "swft_2F3BYA9aMdHag8iUtsDE8ji0KOK",
          "transfer_status": "pending",
          "transfer_status_reason": "Credit transfer has been forwarded to the next bank that does not provide tracking service",
          "uetr": "d6e4313a-e186-4b21-83a5-43fa4cbaa38e",
          "updated_at": "2023-08-22T04:03:33Z"
        },
        "properties": {
          "cancellation_reason": {
            "description": "The reason if the transfer is requested to be canceled. [Read more]({{intl-wire.cancellations}}).",
            "nullable": true,
            "type": "string"
          },
          "cancellation_status": {
            "description": "The latest status of cancellation request ([Read more]({{intl-wire.cancellations}})). Can be one of the following:\n- `pending`: the beneficiary bank is still processing the cancellation request.\n- `accepted`: the beneficiary bank has accepted the cancellation request. Funds have been returned, or will be returned shortly.\n- `rejected`: the beneficiary bank has rejected the cancellation request. Funds won't be returned.",
            "nullable": true,
            "type": "string"
          },
          "completed_amount": {
            "description": "The amount (in the smallest unit of the currency) credited to the beneficiary account by the beneficiary bank. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "completed_at": {
            "description": "The timestamp when the international wire was completed by the beneficiary bank",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completed_currency_code": {
            "description": "Currency code of the completed amount. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "nullable": true,
            "type": "string"
          },
          "events": {
            "description": "List of tracking updates of the transfer in ascending order of event timestamp",
            "items": {
              "$ref": "#/components/schemas/SwiftTrackingEvent"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this international wire transfer",
            "type": "string"
          },
          "transfer_status": {
            "description": "The latest transfer status in the SWIFT tracking system. Possible values: `pending`, `rejected`, or `completed`.",
            "nullable": true,
            "type": "string"
          },
          "transfer_status_reason": {
            "description": "The reason if the transfer is still pending or rejected",
            "nullable": true,
            "type": "string"
          },
          "uetr": {
            "description": "Universally unique ID to provide an end-to-end reference for this transfer. Format: UUID v4.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the transfer was last updated by the SWIFT tracking system",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "uetr",
          "transfer_status",
          "transfer_status_reason",
          "cancellation_status",
          "cancellation_reason",
          "completed_at",
          "updated_at",
          "completed_amount",
          "completed_currency_code",
          "events"
        ],
        "type": "object"
      },
      "SwiftTrackingEvent": {
        "properties": {
          "cancellation_reason": {
            "description": "The reason if the transfer is requested to be canceled. [Read more]({{intl-wire.cancellations}}).",
            "nullable": true,
            "type": "string"
          },
          "cancellation_status": {
            "description": "The current status of cancellation request by this event ([Read more]({{intl-wire.cancellations}})). Can be one of the following:\n- `pending`: the beneficiary bank is still processing the cancellation request.\n- `accepted`: the beneficiary bank has accepted the cancellation request. Funds have been returned, or will be returned shortly.\n- `rejected`: the beneficiary bank has rejected the cancellation request. Funds won't be returned.",
            "nullable": true,
            "type": "string"
          },
          "cancellation_status_reason": {
            "description": "The reason if the cancellation request is still pending or rejected",
            "nullable": true,
            "type": "string"
          },
          "charge_bearer": {
            "description": "The charge bearer code. Possible values: `DEBT`, `CRED`, or `SHAR`.",
            "type": "string"
          },
          "charges": {
            "description": "List of fees charged by financial institutions involved in this transfer. Charges are only listed if the intermediary and beneficiary banks are part of the SWIFT GPI tracking system.",
            "items": {
              "$ref": "#/components/schemas/ChargeInfo"
            },
            "nullable": true,
            "type": "array"
          },
          "fx_rate": {
            "description": "The foreign exchange rate used for currency exchange by this financial institution",
            "nullable": true,
            "type": "string"
          },
          "instructed_amount": {
            "description": "Instructed amount (in the smallest unit of the currency) of the transfer. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "instructed_currency_code": {
            "description": "Instructed currency. The three-letter currency code defined in ISO 4217 (e.g. `USD`). [Read more]({{intl-wire.amounts}}).",
            "nullable": true,
            "type": "string"
          },
          "instructed_fi": {
            "description": "The SWIFT BIC code of the instructed financial institution (i.e., the next FI in the routing)",
            "nullable": true,
            "type": "string"
          },
          "is_cover_transfer_event": {
            "description": "Indicate if this event is for the cover transfer that settles funds. Cover transfer events will not impact the corresponding customer transfer status.",
            "type": "boolean"
          },
          "network_reference": {
            "description": "The event ID in the SWIFT tracking system. Unique per transfer.",
            "type": "string"
          },
          "settled_amount": {
            "description": "Settlement amount (in the smallest unit of the currency) of the transfer. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "settled_currency_code": {
            "description": "Settlement currency. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "nullable": true,
            "type": "string"
          },
          "transfer_status": {
            "description": "The current transfer status in the SWIFT tracking system by this event. Possible values: `pending`, `rejected`, or `completed`.",
            "nullable": true,
            "type": "string"
          },
          "transfer_status_reason": {
            "description": "The reason if the transfer is still pending or rejected",
            "nullable": true,
            "type": "string"
          },
          "type": {
            "description": "The tracking event type. Possible values: `fi_transfer_initiated`, `fi_transfer_updated`, `fi_transfer_cancellation_requested`, `fi_transfer_cancellation_responded`, `fi_transfer_cancellation_tracking_updated`, `fi_transfer_return_initiated`, `fi_transfer_return_updated`, `fi_transfer_cover_initiated`, `fi_transfer_cover_updated`, `fi_transfer_cover_return_initiated`, `fi_transfer_cover_return_updated`, `transfer_initiated`, `transfer_updated`, `transfer_cancellation_requested`, `transfer_cancellation_responded`, `transfer_cancellation_tracking_updated`, `transfer_return_initiated`, `transfer_return_updated`, `transfer_cover_initiated`, `transfer_cover_updated`, `transfer_cover_return_initiated`, `transfer_cover_return_updated`.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the event was last updated by the SWIFT tracking system",
            "format": "date-time",
            "type": "string"
          },
          "updated_by": {
            "description": "The SWIFT BIC code of the financial institution posting this status update, or the SWIFT tracking system (TRCKCHZZXXX)",
            "type": "string"
          }
        },
        "required": [
          "network_reference",
          "updated_by",
          "instructed_fi",
          "updated_at",
          "type",
          "transfer_status",
          "transfer_status_reason",
          "is_cover_transfer_event",
          "cancellation_status",
          "cancellation_reason",
          "cancellation_status_reason",
          "instructed_amount",
          "instructed_currency_code",
          "settled_amount",
          "settled_currency_code",
          "fx_rate",
          "charge_bearer",
          "charges"
        ],
        "type": "object"
      },
      "SwiftTransfer": {
        "description": "The international wire transfer object represents the current state of a single international wire transfer initiated by or received by Column. International wire transfers are used to send/receive money to/from outside of the United States via the SWIFT network. The international wire transfer object exposes all relevant information about the wire transfer to developers.",
        "example": {
          "account_number_id": "acno_2F37RhDUnWtB4GD9JXQEDYu7YAY",
          "allow_overdraft": false,
          "amendment_info": null,
          "amount": 17965,
          "bank_account_id": "bacc_2F37RbG3NZAr7Yn2d1i5hITz9O4",
          "beneficiary_account_number": "1234567890",
          "beneficiary_address": {
            "city": "London",
            "country_code": "GB",
            "line_1": "123 Threadneedle Street",
            "line_2": "",
            "postal_code": "EC2R 8AH",
            "state": "LND"
          },
          "beneficiary_fi": "BKENGB20",
          "beneficiary_name": "Bob Trimble",
          "cancellation_reason": null,
          "cancellation_status": null,
          "charge_bearer": "SHAR",
          "charges": [
            {
              "agent": "CLNOUS66",
              "amount": 500,
              "currency_code": "USD"
            },
            {
              "agent": "CHASGBGLT",
              "amount": 500,
              "currency_code": "CNY"
            }
          ],
          "column_fixed_fee": 2500,
          "completed_at": null,
          "counterparty_id": "cpty_2ESSJPnpof38GraQR5C6EnfFGKw",
          "created_at": "2022-09-20T21:55:31Z",
          "currency_code": "USD",
          "description": "SWIFT transfer with CNY",
          "end_to_end_id": "",
          "fx_quote_id": "fxqt_2F3BY6XCpKQUy5cGCqPgLf3Kit7",
          "fx_rate": "6.872100000",
          "id": "swft_2F3BYA9aMdHag8iUtsDE8ji0KOK",
          "idempotency_key": null,
          "initiated_at": "2022-09-20T21:55:31Z",
          "instructed_amount": 123456,
          "instructed_currency_code": "CNY",
          "instruction_id": "XF7MBKI09TUNZXIL",
          "instruction_to_beneficiary_fi": "please contact with the beneficiary before releasing the funds",
          "intermediary_fis": [],
          "is_incoming": false,
          "manual_review_at": null,
          "originator_account_number": "366763686659680",
          "originator_address": {
            "city": "San Francisco",
            "country_code": "US",
            "line_1": "12345 Mission St.",
            "line_2": "",
            "postal_code": "94016",
            "state": "CA"
          },
          "originator_fi": "CLNOUS66",
          "originator_name": "Alice Biden",
          "pending_submission_at": "2022-09-20T21:55:32Z",
          "platform_fixed_fee": 1000,
          "platform_fx_fee": 500,
          "raw_message": null,
          "remittance_info": {
            "general_info": "downpayment for mortgage ID 123546"
          },
          "return_reason": null,
          "returned_amount": null,
          "returned_at": null,
          "returned_currency_code": null,
          "settled_amount": 123456,
          "settled_currency_code": "CNY",
          "settlement_date": "2022-09-20",
          "status": "submitted",
          "submitted_at": "2022-09-20T21:59:16Z",
          "uetr": "d6e4313a-e186-4b21-83a5-43fa4cbaa38e",
          "ultimate_beneficiary_address": null,
          "ultimate_beneficiary_name": "",
          "ultimate_originator_address": null,
          "ultimate_originator_counterparty_id": "",
          "ultimate_originator_name": "",
          "updated_at": "2022-09-20T22:09:18Z"
        },
        "properties": {
          "account_number_id": {
            "description": "ID of the account number that is sending/receiving the transfer",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allows the account to go negative for an outgoing transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it",
            "type": "boolean"
          },
          "amendment_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AmendmentInfo"
              }
            ],
            "description": "Information about any amendments made to this international wire transfer after creation.",
            "nullable": true,
            "type": "object"
          },
          "amount": {
            "description": "Amount (in the smallest unit of the currency) of the funds that will be debited from the originator account for an outgoing transfer (including all fees), or credited to the beneficiary account for an incoming transfer (after deducting any fees). e.g. $1.75 would be represented by 175.",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending/receiving the transfer",
            "type": "string"
          },
          "beneficiary_account_number": {
            "description": "The account number of the beneficiary",
            "type": "string"
          },
          "beneficiary_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The address of the beneficiary",
            "nullable": true,
            "type": "object"
          },
          "beneficiary_fi": {
            "description": "The SWIFT BIC code or US ABA routing number of the beneficiary's financial institution",
            "type": "string"
          },
          "beneficiary_name": {
            "description": "The name of the beneficiary",
            "type": "string"
          },
          "canceled_at": {
            "description": "The timestamp when a held international wire was canceled and the funds returned to the available balance",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "cancellation_reason": {
            "description": "The reason if the transfer is requested to be canceled",
            "nullable": true,
            "type": "string"
          },
          "cancellation_status": {
            "description": "The status of cancellation request. Possible statuses are `pending`, `accepted`, and `rejected`.",
            "nullable": true,
            "type": "string"
          },
          "charge_bearer": {
            "description": "The charge bearer code. Can be `DEBT`, `CRED`, or `SHAR`.",
            "type": "string"
          },
          "charges": {
            "description": "List of fees charged by financial institutions involved in this transfer. Charges are only listed if the intermediary and beneficiary banks are part of the SWIFT GPI tracking system.",
            "items": {
              "$ref": "#/components/schemas/ChargeInfo"
            },
            "nullable": true,
            "type": "array"
          },
          "column_fixed_fee": {
            "description": "The amount (in the smallest unit of `currency_code`) of fixed fee charged by Column for an outgoing transfer. This is not included in the charges field.",
            "format": "int64",
            "type": "integer"
          },
          "completed_at": {
            "description": "The timestamp when the international wire was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that is receiving/sending the transfer",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp when the international wire was created",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the international wire transfer.",
            "nullable": true,
            "type": "object"
          },
          "currency_code": {
            "description": "Currency of amount. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "type": "string"
          },
          "description": {
            "description": "The description of the transfer visible only in your platform",
            "nullable": true,
            "type": "string"
          },
          "end_to_end_id": {
            "description": "Unique ID to unambiguously identify the transaction. This ID is passed on, unchanged, throughout the entire end-to-end chain, and can be used for reconciliation or to link tasks relating to the transaction.",
            "nullable": true,
            "type": "string"
          },
          "fx_quote_id": {
            "description": "The ID of the foreign exchange quote",
            "type": "string"
          },
          "fx_rate": {
            "description": "The foreign exchange rate used for currency exchange of this transfer, including your platform FX rate margin markup",
            "type": "string"
          },
          "hold_at": {
            "description": "The timestamp when the international wire entered the hold state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of this international wire transfer",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the wire transfer",
            "nullable": true,
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp when the international wire was initiated",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "instructed_amount": {
            "description": "Instructed amount (in the smallest unit of the currency) of the transfer. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "instructed_currency_code": {
            "description": "Instructed currency. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "type": "string"
          },
          "instruction_id": {
            "description": "Unique ID assigned by the sender of this message",
            "nullable": true,
            "type": "string"
          },
          "instruction_to_beneficiary_fi": {
            "description": "Further information for the beneficiary's financial institution",
            "type": "string"
          },
          "intermediary_fis": {
            "description": "The SWIFT BIC codes of intermediary financial institutions",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "is_incoming": {
            "description": "Indicates whether the wire transfer was incoming ( `true` or outgoing `false` )",
            "type": "boolean"
          },
          "manual_review_at": {
            "description": "The timestamp when the international wire went into the manual review state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "originator_account_number": {
            "description": "The account number of the originator",
            "type": "string"
          },
          "originator_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The address of the originator",
            "nullable": true,
            "type": "object"
          },
          "originator_fi": {
            "description": "The SWIFT BIC code or US ABA routing number of the originator's financial institution",
            "type": "string"
          },
          "originator_name": {
            "description": "The name of the originator",
            "type": "string"
          },
          "pending_submission_at": {
            "description": "The timestamp when the international wire was pending for submission",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "platform_fixed_fee": {
            "description": "The amount (in the smallest unit of the `currency_code`) of fixed fee charged by your platform for an outgoing transfer. This is not included in the charges field.",
            "format": "int64",
            "type": "integer"
          },
          "platform_fx_fee": {
            "description": "The amount (in the smallest unit of the `currency_code`) of FX fee charged by your platform for an outgoing FX transfer. This is not included in the charges field.",
            "format": "int64",
            "type": "integer"
          },
          "raw_message": {
            "description": "Raw initial transfer message in the Swift MT103 or ISO 20022/MX pacs.008 format. Only populated if it is queried with `expand=raw_message` parameter.",
            "nullable": true,
            "type": "string"
          },
          "remittance_info": {
            "description": "Remittance information for the transfer, including general info and beneficiary reference.",
            "nullable": true,
            "properties": {
              "beneficiary_reference": {
                "description": "Reference for the beneficiary",
                "maxLength": 30,
                "type": "string"
              },
              "general_info": {
                "description": "General remittance information",
                "maxLength": 140,
                "type": "string"
              }
            },
            "type": "object"
          },
          "return_reason": {
            "description": "The reason if this transfer is returned",
            "nullable": true,
            "type": "string"
          },
          "returned_amount": {
            "description": "The amount (in the smallest unit of the currency) if this transfer is returned. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "returned_at": {
            "description": "The timestamp when the international wire was returned",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "returned_currency_code": {
            "description": "The currency if this transfer is returned. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "nullable": true,
            "type": "string"
          },
          "reviews": {
            "description": "List of approval reviews associated with the international wire transfer.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "settled_amount": {
            "description": "Settlement amount (in the smallest unit of the currency) of the transfer. e.g., 1756 means 1.756 in `KWD`, 17.56 in `USD`, or 1756 in `JPY`.",
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "settled_currency_code": {
            "description": "Settlement currency. The three-letter currency code defined in ISO 4217 (e.g. `USD`).",
            "type": "string"
          },
          "settlement_date": {
            "description": "The date (in ET time zone) when funds are sent to the beneficiary bank for an outgoing transfer, or received from the originator bank for an incoming transfer. Format: `YYYY-MM-DD`.",
            "type": "string"
          },
          "status": {
            "description": "The current status of the international wire transfer. Possible statuses are `pre_review`, `initiated`, `hold`, `canceled`, `manual_review`, `pending_review`, `pending_submission`, `submitted`, `completed`, `pending_return` and `returned`. `pending_review` indicates an incoming international wire is on hold pending creditor/debtor data repair.",
            "enum": [
              "pre_review",
              "hold",
              "canceled",
              "initiated",
              "manual_review",
              "pending_review",
              "pending_submission",
              "submitted",
              "completed",
              "pending_return",
              "returned"
            ],
            "type": "string"
          },
          "submitted_at": {
            "description": "The timestamp when the international wire was submitted to the SWIFT network",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "uetr": {
            "description": "Universally unique ID to provide an end-to-end reference for this transfer. Format: UUID v4.",
            "nullable": true,
            "type": "string"
          },
          "ultimate_beneficiary_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The address of the ultimate beneficiary to which this transfer is due",
            "nullable": true,
            "type": "object"
          },
          "ultimate_beneficiary_name": {
            "description": "The name of the ultimate beneficiary to which this transfer is due",
            "type": "string"
          },
          "ultimate_originator_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The address of the ultimate party that owes an amount to the (ultimate) beneficiary",
            "nullable": true,
            "type": "object"
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originating counterparty that ordered the payment. Only populated for Direct `USD` settlement transfers that include an ultimate originator. Empty for traditional SWIFT transfers or transfers without an ultimate originator.",
            "type": "string"
          },
          "ultimate_originator_name": {
            "description": "The name of the ultimate party that owes an amount to the (ultimate) beneficiary",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the international wire was updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "idempotency_key",
          "bank_account_id",
          "account_number_id",
          "counterparty_id",
          "status",
          "is_incoming",
          "allow_overdraft",
          "description",
          "fx_quote_id",
          "amount",
          "currency_code",
          "instructed_amount",
          "instructed_currency_code",
          "settled_amount",
          "settled_currency_code",
          "return_reason",
          "returned_amount",
          "returned_currency_code",
          "cancellation_reason",
          "cancellation_status",
          "created_at",
          "updated_at",
          "initiated_at",
          "pending_submission_at",
          "submitted_at",
          "completed_at",
          "returned_at",
          "manual_review_at",
          "column_fixed_fee",
          "platform_fixed_fee",
          "platform_fx_fee",
          "settlement_date",
          "instruction_id",
          "end_to_end_id",
          "uetr",
          "fx_rate",
          "charge_bearer",
          "charges",
          "originator_name",
          "originator_address",
          "originator_account_number",
          "originator_fi",
          "ultimate_originator_name",
          "ultimate_originator_address",
          "ultimate_originator_counterparty_id",
          "beneficiary_name",
          "beneficiary_address",
          "beneficiary_account_number",
          "beneficiary_fi",
          "instruction_to_beneficiary_fi",
          "ultimate_beneficiary_name",
          "ultimate_beneficiary_address",
          "remittance_info",
          "intermediary_fis",
          "raw_message",
          "amendment_info"
        ],
        "type": "object"
      },
      "TaxForm": {
        "description": "The Tax Form object represents a tax form (e.g., `1099-INT`) generated for an entity. For accounts that earn interet at Column, Column will automatically file a tax form to both the state and federal government. Read about Tax Forms here.",
        "properties": {
          "comment": {
            "description": "Optional comment about the tax form (e.g., cancellation reason)",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "ISO 8601 timestamp when the tax form was created",
            "format": "date-time",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          },
          "description": {
            "description": "Optional description of the tax form",
            "nullable": true,
            "type": "string"
          },
          "document_id": {
            "description": "ID of the document containing PDF or Zip file of this tax form",
            "type": "string"
          },
          "entity_id": {
            "description": "ID of the entity this tax form belongs to",
            "type": "string"
          },
          "fed_accepted_at": {
            "description": "ISO 8601 timestamp when the IRS accepted the form",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "fed_rejected_at": {
            "description": "ISO 8601 timestamp when the IRS rejected the form",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "fed_sent_at": {
            "description": "ISO 8601 timestamp when the form was sent to the IRS",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "fed_status": {
            "description": "Status of federal filing. Possible values: `not_required`, `scheduled`, `sent`, `accepted`, `rejected`, `accepted_with_error`, `canceled`.",
            "type": "string"
          },
          "gross_amount": {
            "description": "Gross amount in the smallest unit of `currency_code` (e.g., cents in `USD` ).",
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "description": "Unique ID for the tax form",
            "type": "string"
          },
          "mail_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Mailing address for the tax form",
            "nullable": true,
            "type": "object"
          },
          "mail_received_at": {
            "description": "ISO 8601 timestamp when the mail was received (if tracking available)",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "mail_sent_at": {
            "description": "ISO 8601 timestamp when the form was sent via mail",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "mail_status": {
            "description": "Status of physical mailing to the taxpayer. Possible values: `not_required`, `scheduled`, `sent`, `received`, `canceled`.",
            "type": "string"
          },
          "state": {
            "description": "State code (e.g., CA) if state filing is required",
            "nullable": true,
            "type": "string"
          },
          "state_accepted_at": {
            "description": "ISO 8601 timestamp when the state accepted the form",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state_rejected_at": {
            "description": "ISO 8601 timestamp when the state rejected the form",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state_sent_at": {
            "description": "ISO 8601 timestamp when the form was sent to the state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "state_status": {
            "description": "Status of state filing. Possible values: `not_required`, `scheduled`, `sent`, `accepted`, `rejected`, `canceled`.",
            "type": "string"
          },
          "tax_year": {
            "description": "The tax year this form covers (e.g., 2025)",
            "type": "integer"
          },
          "type": {
            "description": "Type of tax form. Possible types are: 1099_int (IRS 1099-INT form for interest income).",
            "type": "string"
          },
          "updated_at": {
            "description": "ISO 8601 timestamp when the tax form was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "entity_id",
          "type",
          "tax_year",
          "currency_code",
          "gross_amount",
          "document_id",
          "created_at",
          "updated_at",
          "fed_status",
          "state_status",
          "mail_status"
        ],
        "type": "object"
      },
      "ThreeDSAttemptStatus": {
        "description": "The status of a 3DS authentication attempt",
        "enum": [
          "rejected",
          "presented",
          "challenged",
          "authenticated",
          "associated"
        ],
        "type": "string"
      },
      "ThreeDSChallengeType": {
        "description": "The type of challenge used in 3DS authentication",
        "enum": [
          "frictionless",
          "attempts",
          "otp",
          "biometric",
          "external"
        ],
        "type": "string"
      },
      "ThreeDSDataOnlyAuthentication": {
        "description": "Metadata from a data-only 3D Secure authentication (EMV 3DS merchant challenge indicator `06`). Data-only authentications are informational: the merchant shares authentication data without requesting a cardholder challenge, and no 3DS attempt is created. Delivered via the `issuing.3ds.data_only_received` webhook event.",
        "properties": {
          "acs_transaction_id": {
            "description": "The Access Control Server (ACS) transaction identifier",
            "type": "string"
          },
          "amount": {
            "description": "The transaction amount in the smallest unit of the currency (e.g., cents for `USD`)",
            "example": 12345,
            "format": "int64",
            "nullable": true,
            "type": "integer"
          },
          "card_account_id": {
            "description": "The card account associated with the card",
            "example": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^cacc_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "card_id": {
            "description": "The card the data-only authentication was performed against",
            "example": "card_2x8gszy5folpA9s0TOCseE9ABDM",
            "pattern": "^card_[0-9A-Za-z]{27}$",
            "type": "string"
          },
          "channel": {
            "description": "The transaction channel supplied by the 3DS network",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp when Column received the data-only authentication",
            "format": "date-time",
            "type": "string"
          },
          "currency": {
            "description": "The ISO 4217 currency code for the transaction",
            "example": "USD",
            "maxLength": 3,
            "minLength": 3,
            "nullable": true,
            "type": "string"
          },
          "customer_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDSDataOnlyCustomerInfo"
              }
            ],
            "description": "Customer contact details supplied by the merchant in the 3DS request",
            "nullable": true,
            "type": "object"
          },
          "device_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ThreeDSDataOnlyDeviceInfo"
              }
            ],
            "description": "Details about the device used for the transaction, supplied by the 3DS network",
            "nullable": true,
            "type": "object"
          },
          "ds_transaction_id": {
            "description": "The Directory Server (DS) transaction identifier",
            "nullable": true,
            "type": "string"
          },
          "merchant_category_code": {
            "description": "The Merchant Category Code (MCC)",
            "example": "5411",
            "maxLength": 4,
            "minLength": 4,
            "nullable": true,
            "type": "string"
          },
          "merchant_challenge_indicator": {
            "description": "The raw EMV 3DS merchant challenge indicator (`06` for data-only)",
            "type": "string"
          },
          "merchant_country_code": {
            "description": "The ISO 3166-1 alpha-2 country code of the merchant",
            "example": "US",
            "maxLength": 2,
            "minLength": 2,
            "nullable": true,
            "type": "string"
          },
          "merchant_name": {
            "description": "The name of the merchant",
            "nullable": true,
            "type": "string"
          },
          "merchant_url": {
            "description": "The URL of the merchant",
            "nullable": true,
            "type": "string"
          },
          "message_category": {
            "description": "The 3DS message category",
            "enum": [
              "payment",
              "non_payment"
            ],
            "nullable": true,
            "type": "string"
          },
          "network_risk_score": {
            "description": "The two-character risk score supplied by the 3DS network",
            "nullable": true,
            "type": "string"
          },
          "three_ds_message_version": {
            "description": "The 3D Secure protocol message version",
            "type": "string"
          },
          "three_ri_indicator": {
            "description": "The raw EMV 3DS requestor-initiated (3RI) indicator",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "card_id",
          "card_account_id",
          "acs_transaction_id",
          "three_ds_message_version",
          "merchant_challenge_indicator",
          "created_at"
        ],
        "type": "object"
      },
      "ThreeDSDataOnlyCustomerInfo": {
        "description": "Customer contact details supplied by the merchant in a data-only 3DS authentication",
        "properties": {
          "email_address": {
            "description": "Email address of the customer",
            "nullable": true,
            "type": "string"
          },
          "mobile_number": {
            "description": "Mobile phone number of the customer",
            "nullable": true,
            "type": "string"
          },
          "phone_number": {
            "description": "Phone number of the customer",
            "nullable": true,
            "type": "string"
          },
          "work_number": {
            "description": "Work phone number of the customer",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThreeDSDataOnlyDeviceInfo": {
        "description": "Details about the device used for a data-only 3DS authentication",
        "properties": {
          "advertising_id": {
            "description": "Unique device ID available for advertising and fraud-detection purposes",
            "nullable": true,
            "type": "string"
          },
          "browser_accept_header": {
            "description": "Raw HTTP Accept header from the browser",
            "nullable": true,
            "type": "string"
          },
          "browser_color_depth": {
            "description": "Bit depth of the browser's color palette",
            "nullable": true,
            "type": "string"
          },
          "browser_java_enabled": {
            "description": "Whether the browser can execute Java",
            "nullable": true,
            "type": "string"
          },
          "browser_javascript_enabled": {
            "description": "Whether the browser can execute JavaScript",
            "nullable": true,
            "type": "string"
          },
          "browser_language": {
            "description": "Browser language from the navigator language property",
            "nullable": true,
            "type": "string"
          },
          "browser_screen_height": {
            "description": "Height of the cardholder's screen in pixels",
            "nullable": true,
            "type": "string"
          },
          "browser_screen_width": {
            "description": "Width of the cardholder's screen in pixels",
            "nullable": true,
            "type": "string"
          },
          "browser_time_zone": {
            "description": "Time difference between UTC and the browser's local time, in minutes",
            "nullable": true,
            "type": "string"
          },
          "device_model": {
            "description": "Mobile device manufacturer and model",
            "nullable": true,
            "type": "string"
          },
          "device_name": {
            "description": "User-assigned device name",
            "nullable": true,
            "type": "string"
          },
          "ip": {
            "description": "IP address of the device",
            "nullable": true,
            "type": "string"
          },
          "ip_country": {
            "description": "Country of origin derived from the IP address",
            "nullable": true,
            "type": "string"
          },
          "latitude": {
            "description": "Latitude of the device based on geolocation or IP address",
            "nullable": true,
            "type": "string"
          },
          "locale": {
            "description": "Device locale from the browser header or the app's language settings (BCP 47)",
            "nullable": true,
            "type": "string"
          },
          "longitude": {
            "description": "Longitude of the device based on geolocation or IP address",
            "nullable": true,
            "type": "string"
          },
          "operating_system_name": {
            "description": "Operating system of the device",
            "nullable": true,
            "type": "string"
          },
          "operating_system_version": {
            "description": "Operating system version of the device",
            "nullable": true,
            "type": "string"
          },
          "platform": {
            "description": "Platform of the device (e.g., Android, iOS)",
            "nullable": true,
            "type": "string"
          },
          "screen_resolution": {
            "description": "Pixel width and height of the screen (e.g., 1080x1920)",
            "nullable": true,
            "type": "string"
          },
          "sdk_app_id": {
            "description": "Universally unique ID created upon installation or update of the 3DS requestor app on the device",
            "nullable": true,
            "type": "string"
          },
          "user_agent": {
            "description": "User agent of the browser, or device identifier for in-app transactions",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ThreeDSOutcomeReason": {
        "description": "The reason for the 3DS authentication outcome",
        "enum": [
          "frictionless",
          "challenged_accepted",
          "attempts",
          "card_account_status",
          "failed_challenge",
          "rule_rejected",
          "error"
        ],
        "type": "string"
      },
      "TransferReview": {
        "description": "A transfer review records a single approve or reject decision made on a transfer while it was awaiting approval in `pre_review`. Transfer reviews are only created when transfer approvals are enabled for the platform, or for the API key that created the transfer.",
        "properties": {
          "comment": {
            "description": "Comment provided by the reviewer",
            "type": "string"
          },
          "created_at": {
            "description": "Timestamp of when the review was created",
            "format": "date-time",
            "type": "string"
          },
          "decision": {
            "description": "Review decision. Possible values: `approved`, `rejected`",
            "enum": [
              "approved",
              "rejected"
            ],
            "type": "string"
          },
          "id": {
            "description": "Unique identifier of the review",
            "type": "string"
          },
          "reviewed_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "Identity of the reviewer (API key or dashboard user)",
            "nullable": true,
            "type": "object"
          },
          "updated_at": {
            "description": "Timestamp of when the review was last updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "reviewed_by",
          "decision"
        ],
        "type": "object"
      },
      "UnifiedTransfer": {
        "properties": {
          "amount": {
            "description": "The transfer amount in the smallest unit of the currency",
            "format": "int64",
            "type": "integer"
          },
          "auxiliary_on_us": {
            "description": "The auxiliary on-us field",
            "type": "string"
          },
          "batch_transfer_count": {
            "description": "Total number of transfers represented by the batch. Present only when this row represents a batch.",
            "format": "int32",
            "type": "integer"
          },
          "check_number": {
            "description": "The check number",
            "type": "string"
          },
          "completed_at": {
            "description": "The completion timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "The creation timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the transfer. Currently populated for ACH, wire, and realtime results when available.",
            "nullable": true,
            "type": "object"
          },
          "currency_code": {
            "description": "The ISO 4217 currency code",
            "type": "string"
          },
          "description": {
            "description": "The transfer description",
            "type": "string"
          },
          "effective_on": {
            "description": "The effective date",
            "format": "date-time",
            "type": "string"
          },
          "external_destination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalDestination"
              }
            ],
            "description": "The external destination"
          },
          "external_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalSource"
              }
            ],
            "description": "The external source"
          },
          "id": {
            "description": "The transfer ID",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key",
            "type": "string"
          },
          "is_incoming": {
            "description": "Whether the transfer is incoming",
            "type": "boolean"
          },
          "receiver_internal_account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InternalAccount"
              }
            ],
            "description": "The receiver internal account"
          },
          "sender_internal_account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InternalAccount"
              }
            ],
            "description": "The sender internal account"
          },
          "settled_at": {
            "description": "The settlement timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The transfer status",
            "type": "string"
          },
          "transfer_batch_id": {
            "description": "The transfer batch ID",
            "type": "string"
          },
          "type": {
            "description": "The transfer type",
            "type": "string"
          },
          "updated_at": {
            "description": "The last update timestamp",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "settled_at",
          "completed_at",
          "status",
          "type",
          "amount",
          "currency_code",
          "is_incoming",
          "idempotency_key",
          "description"
        ],
        "type": "object"
      },
      "UpdateAccountNumberRequest": {
        "properties": {
          "check_issuing_manual_settlement_required": {
            "description": "Whether manual settlement is required for check issuing. Only available when check issuing NSF grace period is enabled on the platform.",
            "type": "boolean"
          },
          "check_issuing_positive_pay_required": {
            "description": "Whether check issuing positive pay is required for this account number",
            "type": "boolean"
          },
          "check_issuing_prefund_required": {
            "description": "Whether prefund is required for check issuing. Omit to inherit the platform default.",
            "type": "boolean"
          },
          "description": {
            "description": "A description for this account number",
            "maxLength": 255,
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateAssociatedPersonsRequest": {
        "properties": {
          "associated_persons": {
            "description": "List of person entities associated with this business entity and their roles.",
            "items": {
              "$ref": "#/components/schemas/AssociatedPersonRequest"
            },
            "type": "array"
          }
        },
        "required": [
          "associated_persons"
        ],
        "type": "object"
      },
      "UpdateBankAccountRequest": {
        "properties": {
          "account_structure_id": {
            "description": "The account structure ID",
            "type": "string"
          },
          "description": {
            "description": "Updated description",
            "nullable": true,
            "type": "string"
          },
          "display_name": {
            "description": "Updated display name",
            "nullable": true,
            "type": "string"
          },
          "interest_config_id": {
            "description": "The interest config ID",
            "nullable": true,
            "type": "string"
          },
          "is_ach_creditable": {
            "description": "Whether ACH credits are enabled",
            "nullable": true,
            "type": "boolean"
          },
          "is_ach_debitable": {
            "description": "Whether ACH debits are enabled",
            "nullable": true,
            "type": "boolean"
          },
          "is_interest_bearing": {
            "description": "Whether interest bearing is enabled",
            "nullable": true,
            "type": "boolean"
          },
          "is_overdraftable": {
            "description": "Whether overdraft is enabled",
            "nullable": true,
            "type": "boolean"
          },
          "overdraft_reserve_account_id": {
            "description": "The overdraft reserve account ID",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateBookTransferRequest": {
        "properties": {
          "allow_overdraft": {
            "description": "Allow the account to go negative for the transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it.",
            "type": "boolean"
          },
          "amount": {
            "description": "Updated amount (in cents) of the funds that will be transferred.",
            "format": "int64",
            "type": "integer"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`.",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency_code"
        ],
        "type": "object"
      },
      "UpdateBusinessEntity": {
        "properties": {
          "account_usage": {
            "description": "Indicates possible uses of the accounts an entity may use at Column. Only required for a root entity.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation."
          },
          "business_name": {
            "description": "Legal Business Name",
            "type": "string"
          },
          "collected_at": {
            "additionalProperties": {
              "format": "date-time",
              "type": "string"
            },
            "description": "Field collection timestamps, keyed by field path (for example, `business_name` or `ein`). Values must be RFC3339 timestamps between `1900-01-01T00:00:00Z` and the current time. PATCH merges keys into the existing map; an empty map preserves existing timestamps. Nested beneficial owner fields do not support `collected_at`; attest beneficial owners separately as person entities.",
            "type": "object"
          },
          "countries_of_operation": {
            "description": "Countries in which the business currently operates or expects to operate. Only ISO 3166-1 Alpha-2 Country Codes (e.g., `US`, `FR`, `UK`, `DE`, ... ) are allowed. Only required for a root entity.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "country_of_incorporation": {
            "description": "Country in which the business is incorporated. ISO 3166-1 Alpha-2 Country Code.",
            "type": "string"
          },
          "date_of_incorporation": {
            "description": "Date on which the business was incorporated. Format: `YYYY-MM-DD`.",
            "type": "string"
          },
          "dba_name": {
            "description": "Doing Business As name, if different from the legal business name.",
            "type": "string"
          },
          "description": {
            "description": "Description of the business entity. Only required for a root entity.",
            "type": "string"
          },
          "ein": {
            "description": "Employer Identification Number (Tax ID). This may be SSN for a sole proprietorship.",
            "type": "string"
          },
          "end_customer_type": {
            "description": "Type of end customer the business serves. Accepts a free-form string.",
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "type": "string"
          },
          "expected_use_of_funds": {
            "description": "Expected use of funds for the business accounts. Accepts a free-form string.",
            "type": "string"
          },
          "has_virtual_address": {
            "description": "Indicates whether the business uses a virtual address.",
            "type": "boolean"
          },
          "industry": {
            "description": "Industry in which the business entity operates.",
            "type": "string"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "type": "boolean"
          },
          "legal_type": {
            "description": "Type of business. Permitted values are `limited-partnership`, `trust`, `sole-proprietorship`, `corporation`, `llc`, `general-partnership`, `professional-association`, `government`, `non-profit`, `other`, `pic-piv`, `spv`, `irrevocable_trust`, `revocable_trust`.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the business expects to make international payments.",
            "type": "boolean"
          },
          "payment_volumes": {
            "description": "Expected payment volumes. Only required for a root entity.",
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "type": "string"
          },
          "registration_id": {
            "description": "Registration ID. EIN or Registration ID is required.",
            "type": "object"
          },
          "source_of_funds": {
            "description": "Primary source of funds for the business.",
            "type": "string"
          },
          "state_of_incorporation": {
            "description": "State in which the business is incorporated. Only postal abbreviations (e.g. `AL`, `CA`, `DE`, ...) are allowed. Only required for a root entity.",
            "type": "string"
          },
          "website": {
            "description": "Website of the business. Optional, but highly encouraged as it will increase likelihood of an automated verification.",
            "type": "string"
          },
          "year_of_incorporation": {
            "description": "Year in which the business entity was incorporated. Only required for a root entity.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateLoanProgramRequest": {
        "properties": {
          "auto_sell": {
            "description": "Indicates if seasoned principals/interests should be automatically sold to your platform.",
            "type": "boolean"
          },
          "collection_account_number_id": {
            "description": "Default account number ID of your platform to deposit loan payments belonging to your platform.",
            "type": "string"
          },
          "default_interest_config_id": {
            "description": "ID of the default interest configuration for this loan program.",
            "type": "string"
          },
          "purchase_funding_account_number_id": {
            "description": "Default account number ID for your platform to fund loan purchases.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateLoanRequest": {
        "properties": {
          "allow_overpayment": {
            "description": "Indicates if a loan is able to be overpaid and have a `principal_outstanding` of less than $0. If `false`, payments that would result in a loan having a negative balance will be blocked.",
            "nullable": true,
            "type": "boolean"
          },
          "auto_sell": {
            "description": "Indicates if seasoned principals/interests should be automatically sold to your platform.",
            "type": "boolean"
          },
          "description": {
            "description": "The description of the loan in the Column dashboard.",
            "nullable": true,
            "type": "string"
          },
          "interest_config_id": {
            "description": "ID of the interest configuration used to accrue interest receivable daily. The same interest configuration can be shared across multiple loans.",
            "type": "string"
          },
          "is_business_seasoning_days": {
            "description": "Indicates if `seasoning_days` are business days or calendar days.",
            "type": "boolean"
          },
          "is_revolving": {
            "description": "Indicates whether or not the loan is revolving. If `true` the loan can have multiple disbursements.",
            "nullable": true,
            "type": "boolean"
          },
          "loan_program_id": {
            "description": "ID of the loan program for this loan. If this field is not set, your platform's default loan program will be used.",
            "type": "string"
          },
          "maturity_date": {
            "description": "The maturity date of the loan. It is required if the loan is not revolving.",
            "format": "date",
            "nullable": true,
            "type": "string"
          },
          "max_principal_balance": {
            "description": "The max principal balance of the loan in cents. This is akin to a credit limit. Disbursements will fail if the resulting principal will be above the max principal. e.g. $1.75 would be represented by `175`.",
            "nullable": true,
            "type": "integer"
          },
          "retained_by_column": {
            "description": "Indicates if this loan should be retained by Column. Loans retained by Column are not eligible for your platform to purchase.",
            "type": "boolean"
          },
          "seasoning_days": {
            "description": "Number of days principal receivables will be seasoned.",
            "type": "integer"
          },
          "status": {
            "description": "The current status of the loan. Possible values: `current`, `delinquent`, `charged_off`, `in_dispute`, `canceled`, `paid_off`.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdatePersonEntity": {
        "properties": {
          "address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "Addresses need to adhere to character validation, as addresses are used across multiple payment rails. Characters are validated according to the Fedwire character validation."
          },
          "collected_at": {
            "additionalProperties": {
              "format": "date-time",
              "type": "string"
            },
            "description": "Field collection timestamps, keyed by field path (for example, `first_name` or `ssn`). Values must be RFC3339 timestamps between `1900-01-01T00:00:00Z` and the current time. PATCH merges keys into the existing map; an empty map preserves existing timestamps.",
            "type": "object"
          },
          "country_of_citizenship": {
            "description": "Country of citizenship of the individual. Country of citizenship does not need to match the issuing country of an identity document. ISO 3166-1 Alpha-2 Country Code (e.g., `US`, `FR`, `UK`, `DE`, ...).",
            "nullable": true,
            "type": "string"
          },
          "date_of_birth": {
            "description": "Date of birth (`YYYY-MM-DD`). Set to `null` or an empty string to clear a previously set value.",
            "nullable": true,
            "type": "string"
          },
          "drivers_license": {
            "description": "Driver's License Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`.",
            "nullable": true,
            "type": "object"
          },
          "email": {
            "description": "Email of the individual. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the Email field returns an empty string (`\"\"`).",
            "type": "string"
          },
          "employment_status": {
            "description": "Employment status of the individual.",
            "nullable": true,
            "type": "string"
          },
          "expected_payment_rails": {
            "description": "Expected transaction types for the account. Comma-separated list of payment rails; each value must be one of: `ach`, `wire`, `swift`, `check`, `rtp`, `card_spend`.",
            "nullable": true,
            "type": "string"
          },
          "first_name": {
            "description": "First name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "income": {
            "description": "Estimated pre-tax annual income. Accepts an array to allow passing income ranges.",
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": "array"
          },
          "is_high_risk": {
            "description": "Indicates whether the entity has been identified as high risk based on compliance screening",
            "nullable": true,
            "type": "boolean"
          },
          "last_name": {
            "description": "Last name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "makes_international_payments": {
            "description": "Indicates whether the individual expects to make international payments.",
            "nullable": true,
            "type": "boolean"
          },
          "middle_name": {
            "description": "Middle name of the legal person. Must adhere to Fedwire character validation.",
            "type": "string"
          },
          "national_id": {
            "description": "National ID Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`.",
            "nullable": true,
            "type": "object"
          },
          "occupation": {
            "description": "Industry of employment or occupation of the individual.",
            "nullable": true,
            "type": "string"
          },
          "passport": {
            "description": "Passport Details. Passport, Driver's License or National ID is required for non U.S. citizens. When left blank, the Passport field returns an empty object ( ) and the Driver's License and National ID fields return `null`.",
            "nullable": true,
            "type": "object"
          },
          "pep_status": {
            "description": "Politically Exposed Person screening status. Allowed values: `not_checked`, `no`, `yes`, `potential`.",
            "nullable": true,
            "type": "string"
          },
          "phone_number": {
            "description": "Phone number of the individual in the E.164 format. Optional, but highly encouraged as it will increase likelihood of an automated verification. When left blank, the phone number field returns an empty string (`\"\"`).",
            "nullable": true,
            "type": "string"
          },
          "purpose_of_account": {
            "description": "Intended use of the account.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "role": {
            "description": "Individual's role or job title at their place of employment.",
            "nullable": true,
            "type": "string"
          },
          "source_of_income": {
            "description": "Sources of income for the individual.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "ssn": {
            "description": "Social Security Number. SSN is required for U.S. citizens. ITIN may be shared in place of SSN. If SSN is provided, country of citizenship is not required. When left blank (i.e., for non-U.S. citizens) the SSN field returns an empty string (`\"\"`). Set to `null` or an empty string to clear a previously set value.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateWebhookEndpointRequest": {
        "properties": {
          "description": {
            "description": "A description for this webhook endpoint.",
            "type": "string"
          },
          "enabled_events": {
            "description": "A list of events and event types which will be sent to this webhook's URL.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "is_disabled": {
            "description": "Set to `true` to disable this webhook endpoint from receiving events.",
            "type": "boolean"
          },
          "url": {
            "description": "The HTTPS URL that webhooks will be delivered to.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VerifyWebhookEndpointRequest": {
        "properties": {
          "event_type": {
            "description": "The event type to send a test webhook for",
            "type": "string"
          }
        },
        "required": [
          "event_type"
        ],
        "type": "object"
      },
      "WebhookDelivery": {
        "properties": {
          "event": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Event"
              }
            ],
            "description": "The event payload associated with this webhook delivery.",
            "nullable": true,
            "type": "object"
          },
          "scheduled_at": {
            "description": "The timestamp at which the webhook delivery is scheduled.",
            "format": "date-time",
            "type": "string"
          },
          "status": {
            "description": "The delivery status of the webhook. Possible values: `pending`, `succeeded`, `failed`.",
            "type": "string"
          }
        },
        "required": [
          "event",
          "scheduled_at",
          "status"
        ],
        "type": "object"
      },
      "WebhookEndpoint": {
        "description": "The webhook object is the current state of a particular webhook endpoint set up in Column. Webhook endpoints are used to configure URLs used to receive Column events.",
        "properties": {
          "created_at": {
            "description": "Date (format: `YYYY-MM-DD`) on which the event was emitted",
            "format": "date-time",
            "type": "string"
          },
          "description": {
            "description": "A description for this webhook",
            "type": "string"
          },
          "enabled_events": {
            "description": "A list of events and event types which are being sent to this webhook's URL",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "is_disabled": {
            "description": "Indicates whether this webhook URL is actively receiving events",
            "type": "boolean"
          },
          "secret": {
            "description": "Secret key which allows you to verify that the event was sent by Column, and not by a third party",
            "type": "string"
          },
          "updated_at": {
            "description": "Timestamp of when this webhook was last updated",
            "format": "date-time",
            "type": "string"
          },
          "url": {
            "description": "The HTTPS URL that webhooks will be delivered to. e.g. https://yoursite.com/column-events",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "description",
          "enabled_events",
          "secret",
          "is_disabled",
          "url"
        ],
        "type": "object"
      },
      "WireDrawdownRequest": {
        "description": "The wire drawdown object represents the current state of a single wire drawdown received by Column. Wire drawdowns are used to request a customer send a wire to a verified counterparty.",
        "properties": {
          "account_number_id": {
            "description": "The Column account number id to which the wire drawdown request was made",
            "type": "string"
          },
          "amount": {
            "description": "Amount (in cents) that will be transferred between originator and counterparty accounts if the wire drawdown is approved",
            "format": "int64",
            "type": "integer"
          },
          "approved_at": {
            "description": "The timestamp at which the drawdown request was approved.",
            "format": "date-time",
            "type": "string"
          },
          "bank_account_id": {
            "description": "Column bank account id to which the wire drawdown request was made",
            "type": "string"
          },
          "beneficiary_account_number": {
            "description": "The external account number to which funds will be sent if the wire drawdown request is approved",
            "type": "string"
          },
          "beneficiary_counterparty_id": {
            "description": "The counterparty ID, which Column automatically creates, to which funds will be sent if the wire drawdown request is approved",
            "type": "string"
          },
          "beneficiary_name": {
            "description": "The beneficiary name to which funds will be sent if the wire drawdown request is approved",
            "type": "string"
          },
          "beneficiary_reference": {
            "description": "Reference information for the beneficiary.",
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp at which the drawdown request was completed.",
            "format": "date-time",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "description": {
            "description": "Description of the drawdown request.",
            "type": "string"
          },
          "id": {
            "description": "The unique id of the wire drawdown request object",
            "type": "string"
          },
          "imad": {
            "description": "The IMAD included in the wire drawdown request. Stands for Input/Output Message Accountability Data. A unique number set by the originating bank given to each Fedwire payment when using the Federal Reserve Bank Service and can be used to investigate and track wire transfers. IMAD will not be populated for on-us wire transfers.",
            "type": "string"
          },
          "is_incoming": {
            "description": "Indicates whether the wire drawdown request is incoming (`true`) or outgoing (`false`)",
            "type": "boolean"
          },
          "message_identifier": {
            "description": "The message identifier supplied in the wire drawdown request. This is typically the same as the IMAD.",
            "type": "string"
          },
          "originator_account_number": {
            "description": "The account number of the originator of the wire drawdown request. This is often different from the beneficiary account number.",
            "type": "string"
          },
          "originator_name": {
            "description": "The name of the originator who sent the wire drawdown request. This is often different from the beneficiary name.",
            "type": "string"
          },
          "originator_to_beneficiary_information": {
            "description": "Free form text where the originator may supply some additional information describing the wire drawdown request",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "received_at": {
            "description": "Date/time at which the wire drawdown request was received (UTC)",
            "format": "date-time",
            "type": "string"
          },
          "receiver_di_name": {
            "description": "The name of the financial institution to which the wire drawdown request was sent",
            "type": "string"
          },
          "receiver_di_routing_number": {
            "description": "The routing number of the financial institution to which the wire drawdown request was sent",
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp at which the drawdown request was rejected.",
            "format": "date-time",
            "type": "string"
          },
          "sender_di_name": {
            "description": "The name of the financial institution that sent the wire drawdown request",
            "type": "string"
          },
          "sender_di_routing_number": {
            "description": "The routing number of the financial institution that sent the wire drawdown request",
            "type": "string"
          },
          "sent_at": {
            "description": "The timestamp at which the drawdown request was sent.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the wire drawdown request. Possible statuses include `received`, `initiated`, `sent`, `approved`, `denied`, `completed`, and `rejected`.",
            "type": "string"
          },
          "wire_transfer_id": {
            "description": "The wire transfer ID of the outgoing wire transfer should a wire drawdown request be approved",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "sent_at",
          "bank_account_id",
          "account_number_id",
          "beneficiary_counterparty_id",
          "beneficiary_account_number",
          "beneficiary_name",
          "beneficiary_reference",
          "originator_account_number",
          "originator_name",
          "originator_to_beneficiary_information",
          "receiver_di_name",
          "receiver_di_routing_number",
          "sender_di_name",
          "sender_di_routing_number",
          "description",
          "amount",
          "currency_code",
          "imad",
          "message_identifier",
          "is_incoming"
        ],
        "type": "object"
      },
      "WireReturnRequest": {
        "description": "A wire return request object represents a request to return funds from a wire transfer. Each return request object can be either sent or received and must always be associated with an existing wire transfer.",
        "properties": {
          "approved_at": {
            "description": "The timestamp when the wire return request is approved",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp when the wire return request is completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp when the wire return request was created",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The unique id of the wire return request object",
            "type": "string"
          },
          "is_incoming": {
            "description": "Whether this is an incoming return request (created by another bank) or outgoing (initiated by us)",
            "type": "boolean"
          },
          "manual_review_at": {
            "description": "The timestamp when the wire return request went into the manual review state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "original_transfer_id": {
            "description": "ID of the original transfer that this return request is requesting to return",
            "nullable": true,
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp when the wire return request is rejected",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_request_reason": {
            "description": "The reason of the return request",
            "type": "string"
          },
          "return_request_response_reason": {
            "description": "The reason of the response to the return request",
            "type": "string"
          },
          "return_transfer_id": {
            "description": "ID of the return transfer",
            "nullable": true,
            "type": "string"
          },
          "scheduled_at": {
            "description": "The timestamp when the wire return request is scheduled to be sent",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "sent_at": {
            "description": "The timestamp when the wire return request is sent",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "status": {
            "description": "The status of the wire return request. Possible statuses include `initiated`, `scheduled`, `sent`, `manual_review`, `approved`, `rejected`, and `completed`.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the wire return request was updated",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "original_transfer_id",
          "return_transfer_id",
          "status",
          "is_incoming",
          "return_request_reason",
          "return_request_response_reason",
          "created_at",
          "updated_at",
          "manual_review_at",
          "approved_at",
          "rejected_at",
          "completed_at",
          "scheduled_at",
          "sent_at"
        ],
        "type": "object"
      },
      "WireReturnRequestReason": {
        "enum": [
          "incorrect_beneficiary_account",
          "incorrect_amount",
          "requested_by_originator",
          "duplicate",
          "fraud",
          "tech_failure",
          "payment_not_justified"
        ],
        "type": "string"
      },
      "WireReturnRequestRejectReason": {
        "enum": [
          "beneficiary_account_closed",
          "non_sufficient_funds",
          "funds_already_returned",
          "rejected_by_beneficiary",
          "legal_decision",
          "no_response_from_beneficiary"
        ],
        "type": "string"
      },
      "WireTransfer": {
        "description": "The wire transfer object represents the current state of a single wire transfer initiated by or received by Column. Wire transfers are used to send and receive money over Fedwire. The wire transfer object exposes all relevant information about the wire transfer to developers.",
        "properties": {
          "account_number_id": {
            "description": "ID of the account number that is sending/receiving the transfer",
            "type": "string"
          },
          "allow_overdraft": {
            "description": "Allows the account to go negative for an outgoing transfer. The bank account needs to have `is_overdraftable` enabled with an overdraft reserve account linked to it",
            "type": "boolean"
          },
          "amount": {
            "description": "Amount (in cents) of the funds that will be transferred between originator and counterparty accounts. e.g. $1.75 would be represented by 175.",
            "format": "int64",
            "type": "integer"
          },
          "bank_account_id": {
            "description": "ID of the bank account that is sending/receiving the transfer",
            "type": "string"
          },
          "beneficiary_account_number": {
            "description": "The external account number to which the wire is being sent",
            "type": "string"
          },
          "beneficiary_name": {
            "description": "The name of the person who is receiving the wire",
            "type": "string"
          },
          "beneficiary_reference": {
            "description": "Reference information for the beneficiary included in the wire transfer.",
            "type": "string"
          },
          "business_function_code": {
            "description": "The business function code specified in the wire transfer. Possible business function codes are `BTR`, `CTP`, `CTR`, `DRC`, or `DRW`.",
            "type": "string"
          },
          "completed_at": {
            "description": "The timestamp when the wire was completed",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "counterparty_id": {
            "description": "ID of the counterparty that is receiving/sending the transfer",
            "type": "string"
          },
          "created_at": {
            "description": "The timestamp when the wire was created",
            "format": "date-time",
            "type": "string"
          },
          "created_by": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Identity"
              }
            ],
            "description": "The identity (API key or dashboard user) that created the wire transfer.",
            "nullable": true,
            "type": "object"
          },
          "creditor_agent_name": {
            "description": "Name of the creditor's financial institution.",
            "type": "string"
          },
          "creditor_agent_routing_number": {
            "description": "Routing number of the creditor's financial institution.",
            "type": "string"
          },
          "creditor_tax_id": {
            "description": "A Tax Identification Number (TIN) or Employer Identification Number (EIN) of exactly `9` numeric characters for the creditor. This field is only required when the counterparty routing number is one of the Treasury tax payment RTNs ('091036164' or '091036177') for an outgoing wire transfer.",
            "type": "string"
          },
          "currency_code": {
            "description": "The three-letter currency code defined in ISO 4217. e.g. `USD`",
            "type": "string"
          },
          "debtor_agent_name": {
            "description": "Name of the debtor's financial institution.",
            "type": "string"
          },
          "debtor_agent_routing_number": {
            "description": "Routing number of the debtor's financial institution.",
            "type": "string"
          },
          "description": {
            "description": "A description of the transfer visible in account statements. This field contains \"originator to beneficiary\" information and will be transmitted to the RDFI. The description has a `140` character limit.",
            "type": "string"
          },
          "fi_to_fi_information_line_1": {
            "description": "Financial institution to financial institution information, most often used by a FI to explain the reason for a wire reversal",
            "type": "string"
          },
          "fi_to_fi_information_line_2": {
            "description": "Financial institution to financial institution information line 2.",
            "type": "string"
          },
          "fi_to_fi_information_line_3": {
            "description": "Financial institution to financial institution information line 3.",
            "type": "string"
          },
          "fi_to_fi_information_line_4": {
            "description": "Financial institution to financial institution information line 4.",
            "type": "string"
          },
          "fi_to_fi_information_line_5": {
            "description": "Financial institution to financial institution information line 5.",
            "type": "string"
          },
          "fi_to_fi_information_line_6": {
            "description": "Financial institution to financial institution information line 6.",
            "type": "string"
          },
          "hold_at": {
            "description": "The timestamp when the wire transfer entered the hold state.",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "id": {
            "description": "The unique ID of the object",
            "type": "string"
          },
          "idempotency_key": {
            "description": "The idempotency key specified in the wire transfer",
            "type": "string"
          },
          "imad": {
            "description": "Stands for Input/Output Message Accountability Data. A unique number set by the originating bank given to each Fedwire payment when using the Federal Reserve Bank Service and can be used to investigate and track wire transfers. IMAD will be populated asynchronously and will not be populated on the completed event. IMAD will also not be populated for on-us wire transfers.",
            "type": "string"
          },
          "initiated_at": {
            "description": "The timestamp when the wire was initiated",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "instructed_agent_name": {
            "description": "Name of the instructed financial institution.",
            "type": "string"
          },
          "instructed_agent_routing_number": {
            "description": "Routing number of the instructed financial institution.",
            "type": "string"
          },
          "instructing_agent_name": {
            "description": "Name of the instructing financial institution.",
            "type": "string"
          },
          "instructing_agent_routing_number": {
            "description": "Routing number of the instructing financial institution.",
            "type": "string"
          },
          "is_incoming": {
            "description": "Indicates whether the wire transfer was incoming ( `true` or outgoing `false` )",
            "type": "boolean"
          },
          "is_on_us": {
            "description": "Indicates whether the wire transfer was between two bank accounts held at Column",
            "type": "boolean"
          },
          "manual_review_at": {
            "description": "The timestamp when the wire went into the manual review state",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "omad": {
            "description": "Stands for Input/Output Message Accountability Data. A unique number set by the Fed given to each Fedwire payment when using the Federal Reserve Bank Service and can be used to investigate and track wire transfers. OMAD will be populated asynchronously and will not be populated on the completed event. OMAD will also not be populated for on-us wire transfers.",
            "type": "string"
          },
          "originator_account_number": {
            "description": "The external account number from which the wire is originated",
            "type": "string"
          },
          "originator_name": {
            "description": "The name of the person or entity that is originating the wire",
            "type": "string"
          },
          "originator_to_beneficiary_information_line_1": {
            "description": "Originator to beneficiary information line 1.",
            "type": "string"
          },
          "originator_to_beneficiary_information_line_2": {
            "description": "Originator to beneficiary information line 2.",
            "type": "string"
          },
          "originator_to_beneficiary_information_line_3": {
            "description": "Originator to beneficiary information line 3.",
            "type": "string"
          },
          "originator_to_beneficiary_information_line_4": {
            "description": "Originator to beneficiary information line 4.",
            "type": "string"
          },
          "pending_submission_at": {
            "description": "The timestamp when the wire was marked PENDING_SUBMISSION",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "pre_review_at": {
            "description": "The timestamp at which transfer approval became required for the wire transfer, which then waits for an approval decision before being initiated. Only set when transfer approvals are enabled for the platform, or for the API key that created the transfer.",
            "format": "date-time",
            "type": "string"
          },
          "previous_message_reference": {
            "description": "The previous message identifier included in the raw wire message",
            "type": "string"
          },
          "raw_beneficiary_address": {
            "description": "The unstructured beneficiary address extracted from the raw wire message",
            "type": "string"
          },
          "raw_message": {
            "description": "The raw Fedwire message for this wire transfer.",
            "type": "string"
          },
          "raw_originator_address": {
            "description": "The unstructured originator address extracted from the raw wire message",
            "type": "string"
          },
          "receiver_di_name": {
            "description": "The name of the person / entity that received the wire",
            "type": "string"
          },
          "receiver_di_routing_number": {
            "description": "The routing number of the bank that received the wire",
            "type": "string"
          },
          "rejected_at": {
            "description": "The timestamp when the wire was rejected",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "return_additional_info": {
            "description": "Contains additional freeform text from the RDFI if provided (only populated for wire returns)",
            "type": "string"
          },
          "return_reason": {
            "description": "Reason the original transfer was returned. Possible values: `invalid_beneficiary_account_number`, `beneficiary_mismatch`, `beneficiary_request`, `originator_request`, `account_closed`, `account_blocked`, `incorrect_amount`, `fraud`, `missing_originator_data`, `missing_beneficiary_data`, `compliance`, `other`.",
            "type": "string"
          },
          "reversal_pair_transfer_id": {
            "description": "If the transfer is the original transfer of a wire reversal, this field is the unique ID of the reversal transfer. If the transfer is the reversal transfer of a wire reversal, this field is the unique ID of the original transfer.",
            "type": "string"
          },
          "reviews": {
            "description": "The transfer approval decisions recorded on the wire transfer. Each entry is a dashboard user approving or rejecting the transfer while it was in `pre_review`. This list is only populated when transfer approvals are enabled for the platform, or for the API key that created the transfer; otherwise it is omitted from the response.",
            "items": {
              "$ref": "#/components/schemas/TransferReview"
            },
            "type": "array"
          },
          "sender_address": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "description": "The address of the sender of the wire transfer.",
            "nullable": true,
            "type": "object"
          },
          "sender_di_name": {
            "description": "The name of the person / entity that sent the wire",
            "type": "string"
          },
          "sender_di_routing_number": {
            "description": "The routing number of the bank that sent the wire",
            "type": "string"
          },
          "sender_reference": {
            "description": "The sender reference field parsed out from the raw wire message",
            "type": "string"
          },
          "status": {
            "description": "The current status of the wire transfer. Possible values: `INITIATED`, `PRE_REVIEW`, `COMPLETED`, `REJECTED`, `MANUAL_REVIEW`, `HOLD`, and `CANCELED`.",
            "enum": [
              "INITIATED",
              "PRE_REVIEW",
              "COMPLETED",
              "REJECTED",
              "MANUAL_REVIEW",
              "HOLD",
              "CANCELED"
            ],
            "type": "string"
          },
          "submitted_at": {
            "description": "The timestamp when the wire was submitted",
            "format": "date-time",
            "nullable": true,
            "type": "string"
          },
          "subtype_code": {
            "description": "The subtype code specified in the wire transfer",
            "type": "string"
          },
          "tax_record_period_type": {
            "description": "The Tax Month in the tax remittance component. This field is only required when the counterparty routing number is one of the Treasury tax payment RTNs for an outgoing wire transfer. Possible values are `MM01` through `MM12` (January through December).",
            "type": "string"
          },
          "tax_type_code": {
            "description": "Tax Type Code of exactly `5` alphanumeric characters (capital letters and numbers). This field is only required when the counterparty routing number is one of the Treasury tax payment RTNs for an outgoing wire transfer.",
            "type": "string"
          },
          "tax_year": {
            "description": "A Tax Year of exactly `4` numerical characters. This field is only required when the counterparty routing number is one of the Treasury tax payment RTNs for an outgoing wire transfer.",
            "type": "string"
          },
          "type_code": {
            "description": "The type code specified in the wire transfer",
            "type": "string"
          },
          "ultimate_originator_counterparty_id": {
            "description": "ID of the ultimate originating counterparty that sent the transfer in an outgoing wire transfer. If present, this will replace the originator field in the outgoing wire message.",
            "type": "string"
          },
          "updated_at": {
            "description": "The timestamp when the wire was updated",
            "format": "date-time",
            "type": "string"
          },
          "wire_drawdown_request_id": {
            "description": "ID of the wire drawdown request if the wire is sent in response to a wire drawdown request",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "created_by",
          "updated_at",
          "initiated_at",
          "pending_submission_at",
          "submitted_at",
          "completed_at",
          "rejected_at",
          "manual_review_at",
          "idempotency_key",
          "bank_account_id",
          "account_number_id",
          "counterparty_id",
          "amount",
          "currency_code",
          "description",
          "status",
          "allow_overdraft",
          "is_on_us",
          "is_incoming",
          "omad",
          "type_code",
          "subtype_code",
          "imad",
          "sender_di_routing_number",
          "sender_di_name",
          "sender_reference",
          "receiver_di_routing_number",
          "receiver_di_name",
          "previous_message_reference",
          "business_function_code",
          "beneficiary_name",
          "raw_beneficiary_address",
          "beneficiary_account_number",
          "beneficiary_reference",
          "originator_name",
          "raw_originator_address",
          "originator_account_number",
          "originator_to_beneficiary_information_line_1",
          "originator_to_beneficiary_information_line_2",
          "originator_to_beneficiary_information_line_3",
          "originator_to_beneficiary_information_line_4",
          "fi_to_fi_information_line_1",
          "fi_to_fi_information_line_2",
          "fi_to_fi_information_line_3",
          "fi_to_fi_information_line_4",
          "fi_to_fi_information_line_5",
          "fi_to_fi_information_line_6",
          "sender_address",
          "reversal_pair_transfer_id",
          "wire_drawdown_request_id",
          "ultimate_originator_counterparty_id",
          "creditor_tax_id",
          "tax_record_period_type",
          "tax_type_code",
          "tax_year",
          "debtor_agent_routing_number",
          "debtor_agent_name",
          "instructing_agent_routing_number",
          "instructing_agent_name",
          "instructed_agent_routing_number",
          "instructed_agent_name",
          "creditor_agent_routing_number",
          "creditor_agent_name"
        ],
        "type": "object"
      },
      "WireTransferList": {
        "properties": {
          "has_more": {
            "description": "Whether there are more results available after this set.",
            "type": "boolean"
          },
          "transfers": {
            "description": "List of transfers.",
            "items": {
              "$ref": "#/components/schemas/WireTransfer"
            },
            "type": "array"
          }
        },
        "required": [
          "transfers",
          "has_more"
        ],
        "type": "object"
      },
      "clearDisbursementRequest": {
        "description": "Request body for clearing a disbursement hold. Disbursements can only be cleared if they are in a `hold` state. Both fields are optional; if omitted, the original hold amount is used.",
        "properties": {
          "amount": {
            "description": "Updated amount (in cents) of the funds that will be disbursed.",
            "nullable": true,
            "type": "integer"
          },
          "currency": {
            "description": "The currency of the loan. Currently only `USD` is supported.",
            "nullable": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "updateDisbursementRequest": {
        "description": "Request body for updating a disbursement hold amount. Disbursement must be in a `hold` state.",
        "properties": {
          "amount": {
            "description": "Amount (in cents) of the funds that will be disbursed.",
            "type": "integer"
          },
          "currency": {
            "description": "The currency of the loan. Currently only `USD` is supported.",
            "type": "string"
          }
        },
        "required": [
          "amount",
          "currency"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "BasicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "HTTP Basic auth with an empty username and your API key as the password."
      }
    },
    "responses": {
      "ErrorResponse": {
        "description": "Error response",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "code": {
                  "type": "integer"
                },
                "message": {
                  "type": "string"
                },
                "type": {
                  "type": "string"
                }
              },
              "type": "object"
            }
          }
        }
      }
    }
  }
}
