{
  "openapi": "3.0.1",
  "info": {
    "title": "rail API Specification",
    "description": "Welcome to the rail Developer Guide!\n",
    "version": "1.1.2"
  },
  "servers": [
    {
      "url": "https://sandbox.layer2financial.com/api",
      "description": "Sandbox - Stable API Instance"
    },
    {
      "url": "https://platform.layer2financial.com/api",
      "description": "Production - Stable API Instance"
    }
  ],
  "tags": [
    {
      "name": "Applications",
      "description": "Applications represent the onboarding journey for your customers. They are used to collect KYC information and documents required to open accounts on the platform. Visit our guides for a detailed understanding on how to use these APIs."
    },
    {
      "name": "Accounts",
      "description": "Accounts are used to hold funds on the platform. Once a customer is onboarded via the application process, you can create accounts for them in various currencies."
    },
    {
      "name": "Counterparties",
      "description": "Counterparties represent external entities that you may wish to send or receive funds from. All counterparties are verified to ensure compliance with regulatory requirements prior to being available for use for withdrawals."
    },
    {
      "name": "Customers",
      "description": "Customers can only be created via the application process. Once created, customers can have multiple accounts associated with them."
    },
    {
      "name": "Deposits",
      "description": "Deposits are used to request instructions for funding platform managed accounts from external sources. A given account may have many deposits associated with it depending on the supported rails and configurations."
    },
    {
      "name": "Documents",
      "description": "Document uploading and management functions. "
    },
    {
      "name": "Exchanges",
      "description": "Exchanges are used to convert funds from one currency to another. This is achieved by moving money between 2 platform accounts that are denominated in different currencies. We have eliminated the complexity of traditional currency trading."
    },
    {
      "name": "Payments",
      "description": "Payments are used to orchestrate end to end payment flows from external parties or from within the platform. "
    },
    {
      "name": "Transactions",
      "description": "Transactions are created to record the movement of funds between accounts. The transactions endpoint allows the bulk retrieval of transaction data for reconciliation and reporting purposes."
    },
    {
      "name": "Transfers",
      "description": "Transfer are used to move funds between two platform managed accounts that are denominated in the same currency."
    },
    {
      "name": "Withdrawals",
      "description": "Move funds from a platform managed account to an external counterparty via supported rails."
    },
    {
      "name": "Settlements",
      "description": "Settlement services for funds confirmation and reconciliation. Settlements are a deprecated concept and will be removed in future versions of the API. Please use Payments for all new integrations."
    },
    {
      "name": "Subscriptions (Webhooks)",
      "description": "Manage your callback (webhook) subscriptions. Subscriptions allow you to receive real-time notifications of events that occur within your platform instance. Visit the guides for a full breakdown of all available events."
    }
  ],
  "paths": {
    "/v1/withdrawals": {
      "post": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Create Withdrawal",
        "description": "Request a new withdrawal. On successful request, the withdrawal must be accepted before it is queued for execution.",
        "operationId": "createWithdrawal",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Withdrawal"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseWithdrawalBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:write"
            ]
          }
        ]
      }
    },
    "/v1/withdrawals/{withdrawal_id}/cancel": {
      "post": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Cancel Withdrawal",
        "description": "Cancel a withdrawal. This will submit a withdrawal cancellation request. Some withdrawals may not be cancellable, if the funds have already been processed and sent externally.",
        "operationId": "cancelWithdrawal",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Withdrawal ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseWithdrawalCancellation"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:write"
            ]
          }
        ]
      }
    },
    "/v1/withdrawals/{withdrawal_id}/accept": {
      "post": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Accept Withdrawal",
        "description": "Accept a withdrawal. This will execute the withdrawal and may not be reversible",
        "operationId": "acceptWithdrawal",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Withdrawal ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-signature",
            "in": "header",
            "description": "Client signature to validate the provence of the API request. See [signing](https://docs.rail.io/guides/requestsigning/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-timestamp",
            "in": "header",
            "description": "Current timestamp, represented AS unix epoch seconds. Mandatory when x-signature is provided.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseWithdrawalBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:write"
            ]
          }
        ]
      }
    },
    "/v1/transfers": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "summary": "Create Transfer",
        "description": "Request a new transfer. The transfer must be accepted prior to executing",
        "operationId": "createTransfer",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestTransfer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransfer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "transfers:write"
            ]
          }
        ]
      }
    },
    "/v1/transfers/{transfer_id}/accept": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "summary": "Accept Transfer",
        "description": "Accept a requested transfer. This will execute the transfer and may not be reversible depending on the owner of the destination account",
        "operationId": "confirmTransfer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Transfer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-signature",
            "in": "header",
            "description": "Client signature to validate the provence of the API request. See [signing](https://docs.rail.io/guides/requestsigning/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-timestamp",
            "in": "header",
            "description": "Current timestamp, represented AS unix epoch seconds. Mandatory when x-signature is provided.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransferBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "transfers:write"
            ]
          }
        ]
      }
    },
    "/v1/subscriptions": {
      "get": {
        "tags": [
          "Subscriptions (Webhooks)"
        ],
        "summary": "Get Subscriptions",
        "description": "Return all subscriptions",
        "operationId": "getSubscriptions",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseSubscriptions"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "subscriptions:read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Subscriptions (Webhooks)"
        ],
        "summary": "Create Subscription",
        "description": "Creates a new event call back subscription",
        "operationId": "createSubscription",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Subscription"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseSubscription"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "subscriptions:write"
            ]
          }
        ]
      }
    },
    "/v1/payments": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Create Payment",
        "description": "Create a payment request for a platform account in order to receive funds from an external third party.",
        "operationId": "createPayments",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Payment"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponsePaymentBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "payments:write"
            ]
          }
        ]
      }
    },
    "/v1/payments/{payment_id}/accept": {
      "post": {
        "tags": [
          "Payments"
        ],
        "summary": "Accept Payment",
        "description": "Accept a Payment. On acceptance, payment instructions will be returned (if source = counterparty) or funds will begin processing (if source = account).",
        "operationId": "acceptPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Payment ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponsePaymentBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "payments:write"
            ]
          }
        ]
      }
    },
    "/v1/exchanges/{exchange_id}/accept": {
      "post": {
        "tags": [
          "Exchanges"
        ],
        "summary": "Accept Exchange",
        "description": "Accept an exchange quote. This will execute the exchange and is not reversible",
        "operationId": "acceptExchange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Exchange ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-signature",
            "in": "header",
            "description": "Client signature to validate the provence of the API request. See [signing](https://docs.rail.io/guides/requestsigning/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-timestamp",
            "in": "header",
            "description": "Current timestamp, represented AS unix epoch seconds. Mandatory when x-signature is provided.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestExchangeAccept"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseExchange"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "exchanges:write"
            ]
          }
        ]
      }
    },
    "/v1/exchanges/market": {
      "post": {
        "tags": [
          "Exchanges"
        ],
        "summary": "Create Exchange (Market)",
        "description": "When requesting a market exchange, the quote received is indicative ONLY. This represents an approximate  rate from our liquidity providers. On accepting a market exchange the trade is performed at the current market rate which will be different to the quote presented to you.\n\nNote: Not all custodians support all order types. Where the order type is not possible (Quote/Market/Fix Destination/ Fix Source) an error will be returned.",
        "operationId": "createExchangeMarket",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestExchange"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseExchange"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "exchanges:write"
            ]
          }
        ]
      }
    },
    "/v1/documents/{document_id}": {
      "post": {
        "tags": [
          "Documents"
        ],
        "summary": "Upload Document",
        "description": "Uploads a document to the system. Subsequent uploads to the same id will overwrite previous documents.",
        "operationId": "uploadDocument",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Document ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Supported extensions: PDF, JPEG/JPG, PNG.\n\nMax Size: 30MB.\n\nFile name: No special characters. The file MUST have an extension.",
                    "format": "binary"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseDocumentBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/deposits": {
      "post": {
        "tags": [
          "Deposits"
        ],
        "summary": "Create Deposit",
        "description": "Create a deposit request for a platform account in order to send funds into the account.",
        "operationId": "createDeposits",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Deposit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DEPOSIT_PUSH"
                    },
                    {
                      "$ref": "#/components/schemas/DEPOSIT_PULL"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "deposits:write"
            ]
          }
        ]
      }
    },
    "/v1/deposits/{deposit_id}/accept": {
      "post": {
        "tags": [
          "Deposits"
        ],
        "summary": "Accept Deposit",
        "description": "Accept a Deposit. This is only needed for `PULL` deposits, `PUSH` deposits do not need to be accepted. On acceptance, this will initiate the funds pull from the source counterparty. It is not reversible",
        "operationId": "acceptDeposit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Deposit ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-signature",
            "in": "header",
            "description": "Client signature to validate the provence of the API request. See [signing](https://docs.rail.io/guides/requestsigning/) section for more details.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-timestamp",
            "in": "header",
            "description": "Current timestamp, represented AS unix epoch seconds. Mandatory when x-signature is provided.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseDepositBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "deposits:write"
            ]
          }
        ]
      }
    },
    "/v1/counterparties": {
      "get": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Retrieve Counterparties",
        "description": "Retrieves a list of counterparties given the filter parameters provided",
        "operationId": "getCounterparties",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID to whom the counterparty belongs",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCounterparties"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Create Counterparty",
        "description": "Create a new counterparty for the purpose of pulling funds into the platform or pushing out",
        "operationId": "createCounterparty",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CounterParty"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCounterpartyBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/counterparties/{counterparty_id}/link/details": {
      "post": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Retrieve Linking Details",
        "description": "Retrieve the linking instructions for embedding in a UI to launch account linking from providers such as MX or Plaid.",
        "operationId": "getLinkingDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Counterparty ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CounterPartyLinkingDetails"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CounterPartyLinkingDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/counterparties/{counterparty_id}/link/connect": {
      "post": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Connect Linked Account",
        "description": "Established the connection between a counterparty and external linked account. ",
        "operationId": "connectLinkAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Counterparty ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CounterPartyLinkingConnect"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCounterpartyBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/counterparties/{counterparty_id}/link/accounts": {
      "post": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Retrieve Linkable Accounts",
        "description": "Retrieve the accounts that are available for linking for a `LINKED` counterparty via a provider such as MX or Plaid. ",
        "operationId": "getLinkAccounts",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Counterparty ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CounterPartyLinkingAccounts"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CounterPartyLinkingAccounts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/applications": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve Applications",
        "description": "Retrieves a list of applications given the filter parameters provided",
        "operationId": "getApplications",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "order_by",
            "in": "query",
            "description": "Field to order result set by (e.g. `customer_id`)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Direction of ordering (`ASC` or `DESC`)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Application status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "application_type",
            "in": "query",
            "description": "Application Type",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "terms_and_conditions_accepted",
            "in": "query",
            "description": "Have Terms and Conditions being Accepted",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "information_attested",
            "in": "query",
            "description": "Information Attested",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Customer ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customer_name",
            "in": "query",
            "description": "Customer Name",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "email_address",
            "in": "query",
            "description": "Customer Email Address",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplications"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Create Application",
        "description": "Start a new application to onboard a person or corporation. Once the application is created, proceed to add individuals and update as needed, and then submit once the status allows for it. ",
        "operationId": "createApplication",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestApplication"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplicationBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/applications/{application_id}/submit": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Submit Application",
        "description": "Submit the application for processing, can only be performed once the application status is  \"READY_FOR_SUBMISSION\".",
        "operationId": "submitApplication",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplicationBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/applications/{application_id}/individual": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Add Individual",
        "description": "Adds an individual to the corporate application. Not applicable for individual applications",
        "operationId": "addIndividualToApplication",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestIndividual"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseIndividualBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/applications/{application_id}/accesscode": {
      "post": {
        "tags": [
          "Applications"
        ],
        "summary": "Request Access Code",
        "description": "Generate an access code for use with the rail Customer Onboarding SDK. ",
        "operationId": "createApplicationOneTimeCode",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplicationAccessCode"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Accounts",
        "description": "Retrieves a list of accounts given the filter parameters provided",
        "operationId": "getAccounts",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customer_id",
            "in": "query",
            "description": "Account holder customer ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "product_type",
            "in": "query",
            "description": "* `CLIENT` - Accounts at the Client level for managing client treasury operations\n* `DEPOSIT` - Accounts at the Customer level account for managing customer funds on platform\n* `VIRTUAL` - Accounts at the Customer level account for tracking externally managed customer funds \n\n[see account concepts](#section/Concepts/Accounts) for more details.",
            "schema": {
              "type": "string",
              "enum": [
                "CLIENT",
                "DEPOSIT",
                "VIRTUAL"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "* `OPEN` - Account is open and available for use in line with its product configuration\n* `CLOSED` - Account is permanently closed, no further actions can be performed on the account.  \n* `PENDING` - Account is under additional review prior to moving to the OPEN or CLOSED state. No actions can be performed on the account.  \n* `FROZEN` - Account has been temporarily locked for all actions (deposits, transfers, exchanges and withdrawals).  \n* `EDD` -  Account (and/or customer) requires enhanced due diligence to be performed. The accounts will operate as if frozen. \n* `DORMANT` - No activity has been seen in the last 12 months. The account is available for use.  \n\n",
            "schema": {
              "type": "string",
              "enum": [
                "OPEN",
                "CLOSED",
                "FROZEN",
                "PENDING",
                "EDD",
                "DORMANT"
              ]
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseAccounts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      },
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Open Account",
        "description": "Opens a new account for a customer of a given product type",
        "operationId": "openAccount",
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestAccountOpen"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseAccountBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/customers/{customer_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve Customer",
        "description": "Retrieve customer details",
        "operationId": "getCustomerDetails",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Customer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/CUSTOMER_INDIVIDUAL"
                    },
                    {
                      "$ref": "#/components/schemas/CUSTOMER_CORPORATION"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "customers:read"
            ]
          }
        ],
        "x-order": {
          "value": "1"
        }
      },
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Update Customer ",
        "description": "Update customer details. For individuals (officers) linked to a corporate customer, modify the individual resource directly using [Update Individual](#operation/updateIndividual).",
        "operationId": "updateCustomer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Customer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestCustomerPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCustomerBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "customers:write"
            ]
          }
        ]
      }
    },
    "/v1/customers/{customer_id}/individuals/{individual_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve Individual",
        "description": "Retrieve individual details. This operation is only for corporate customers that have individual officers with access to the account",
        "operationId": "getIndividual",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Corporate Customer ID. This operation can only be performed on corporate customers.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "individual_id",
            "in": "path",
            "description": "Individual ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseIndividual"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "customers:read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Customers"
        ],
        "summary": "Update Individual",
        "description": "Update individual details. This operation is only for corporate customers that have individual officers with access to the account",
        "operationId": "updateIndividual",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Customer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "individual_id",
            "in": "path",
            "description": "Individual ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestPatchGeneric"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseIndividualBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "customers:write"
            ]
          }
        ]
      }
    },
    "/v1/counterparties/{counterparty_id}": {
      "get": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Retrieve Counterparty",
        "description": "Retrieves a list of counterparties given the filter parameters provided",
        "operationId": "getCounterparty",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Counterparty ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCounterparty"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Counterparties"
        ],
        "summary": "Update Counterparty ",
        "description": "Update Counterparty details. There are limits to what can be updated once the counterparty has been approved for use. ",
        "operationId": "updateCounterparty",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Counterparty ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestCounterpartyPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCounterpartyBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/applications/{application_id}": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve Application",
        "description": "Retrieve full details of the  application",
        "operationId": "getApplication",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/INDIVIDUAL"
                    },
                    {
                      "$ref": "#/components/schemas/CORPORATION"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Applications"
        ],
        "summary": "Update Application ",
        "description": "Update applicant properties. For Individuals attached to a corporation, you much patch the individuals directly using [Update Individual](#operation/updateIndividual_1).",
        "operationId": "updateApplication",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestApplicationPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplicationBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/applications/{application_id}/individual/{individual_id}": {
      "delete": {
        "tags": [
          "Applications"
        ],
        "summary": "Delete Individual",
        "description": "Deletes an individual from a corporate application. This action is permanent and cannot be reversed. All related details of the individual (including uploaded documents) will also be deleted.",
        "operationId": "deleteIndividual",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "individual_id",
            "in": "path",
            "description": "Individual ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseIndividualBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Applications"
        ],
        "summary": "Update Individual",
        "description": "Update individual properties. This applies only for corporate applications where individuals associated to the company need to be updated.",
        "operationId": "updateIndividual_1",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "individual_id",
            "in": "path",
            "description": "Individual ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestIndividualPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseIndividualBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:write"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits/{id}": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Account",
        "description": "Retrieves the base set of account details for a given account ID",
        "operationId": "getAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Account ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseAccount"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      },
      "patch": {
        "tags": [
          "Accounts"
        ],
        "summary": "Update Account ",
        "description": "Update an account details. Currently only the account status can be updated.",
        "operationId": "updateDepositAccount",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Account ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RequestAccountPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseAccountBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:write"
            ]
          }
        ]
      }
    },
    "/v1/withdrawals/{withdrawal_id}": {
      "get": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Retrieve Withdrawal",
        "description": "Retrieves details of a previously requested withdrawal",
        "operationId": "getWithdrawal",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Withdrawal ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/WITHDRAWAL_CRYPTO"
                    },
                    {
                      "$ref": "#/components/schemas/WITHDRAWAL_ACH"
                    },
                    {
                      "$ref": "#/components/schemas/WITHDRAWAL_FEDWIRE"
                    },
                    {
                      "$ref": "#/components/schemas/WITHDRAWAL_SWIFT"
                    },
                    {
                      "$ref": "#/components/schemas/WITHDRAWAL_SEPACT"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:read"
            ]
          }
        ]
      }
    },
    "/v1/withdrawals/{withdrawal_id}/status": {
      "get": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Retrieve Withdrawal Status",
        "description": "Retrieves status of a previously requested withdrawal",
        "operationId": "getWithdrawalStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Withdrawal ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseWithdrawalStatus"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:read"
            ]
          }
        ]
      }
    },
    "/v1/withdrawals/{withdrawal_id}/receipt": {
      "get": {
        "tags": [
          "Withdrawals"
        ],
        "summary": "Retrieve Withdrawal Receipt",
        "description": "Retrieves a receipt for a previously completed withdrawal.",
        "operationId": "getWithdrawalReceipt",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Withdrawal ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "Bearer token for authentication",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "withdrawals:read"
            ]
          }
        ]
      }
    },
    "/v1/transfers/{transfer_id}": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "summary": "Retrieve Transfer",
        "description": "Retrieves details of a previously requested transfer",
        "operationId": "getTransfer",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Transfer ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransfer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "transfers:read"
            ]
          }
        ]
      }
    },
    "/v1/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Retrieve Transactions",
        "description": "Retrieves a list of transactions across all accounts given the query parameters provided",
        "operationId": "getTransactions",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order by transaction date (ASC or DESC)",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Filter for transactions from this date",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Filter for transactions to this date",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "account_id",
            "in": "query",
            "description": "Filter transactions by account ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "Filter transactions by category ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "category_type",
            "in": "query",
            "description": "Filter transactions by category type",
            "schema": {
              "type": "string",
              "enum": [
                "ADJUSTMENT",
                "DEPOSIT",
                "EXCHANGE",
                "TRANSFER",
                "WITHDRAWAL"
              ]
            }
          },
          {
            "name": "transaction_status",
            "in": "query",
            "description": "Filter transactions by transaction status",
            "schema": {
              "type": "string",
              "enum": [
                "AUTHORIZED",
                "PENDING",
                "POSTED",
                "CANCELLED"
              ]
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransactions"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/transactions/{id}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "summary": "Retrieve Transaction",
        "description": "Retrieves details of a single transaction",
        "operationId": "getTransaction",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Transaction ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransactionDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/settlements/{settlement_id}": {
      "get": {
        "tags": [
          "Settlements"
        ],
        "summary": "Retrieve Settlement",
        "description": "Returns a detailed breakdown of an outbound settlement by account and customer. Filterable by source and destination accounts.",
        "operationId": "getSettlement",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Settlement ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source_account_id",
            "in": "query",
            "description": "Source Account ID to filter settlement on",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "destination_account_id",
            "in": "query",
            "description": "Destination Account ID to filter settlement on",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseSettlement"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2Flow": [
              "settlements:read"
            ]
          }
        ]
      }
    },
    "/v1/payments/{payment_id}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Retrieve Payment",
        "description": "Retrieves details of a previously requested payment",
        "operationId": "getPayment",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Payment ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponsePayment"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "payments:read"
            ]
          }
        ]
      }
    },
    "/v1/payments/{payment_id}/status": {
      "get": {
        "tags": [
          "Payments"
        ],
        "summary": "Retrieve Payment Status",
        "description": "Retrieves status of a previously created payment. Provides insight into any actions or RFIs that require attention.",
        "operationId": "getPaymentStatus",
        "parameters": [
          {
            "name": "payment_id",
            "in": "path",
            "description": "Payment ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponsePaymentStatus"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "payments:read"
            ]
          }
        ]
      }
    },
    "/v1/exchanges/{exchange_id}": {
      "get": {
        "tags": [
          "Exchanges"
        ],
        "summary": "Retrieve Exchange",
        "description": "Retrieves details of a previously requested exchange",
        "operationId": "getExchange",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Exchange ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseExchange"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "exchanges:read"
            ]
          }
        ]
      }
    },
    "/v1/documents/{document_id}/download": {
      "get": {
        "tags": [
          "Documents"
        ],
        "summary": "Download Document",
        "description": "Downloads a previously upload document",
        "operationId": "downloadDocument",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Document ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/octet-stream": {}
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:read"
            ]
          }
        ]
      }
    },
    "/v1/deposits/{deposit_id}": {
      "get": {
        "tags": [
          "Deposits"
        ],
        "summary": "Retrieve Deposit",
        "description": "Retrieves details of a previously requested deposit",
        "operationId": "getDeposit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Deposit ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/DEPOSIT_PUSH"
                    },
                    {
                      "$ref": "#/components/schemas/DEPOSIT_PULL"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "deposits:read"
            ]
          }
        ]
      }
    },
    "/v1/customers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Retrieve Customers",
        "description": "Retrieve customers matching the provided query parameters ",
        "operationId": "getCustomers",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Type of Customer",
            "schema": {
              "type": "string",
              "enum": [
                "INDIVIDUAL",
                "CORPORATION"
              ]
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "* `ACTIVE` - Customer is active and available for use in line with client configuration. \n* `CLOSED` -  Customer is permanently closed, no further actions can be performed on it or associated accounts. \n* `PENDING` -  Customer is under additional review. No actions can be performed on the account.   \n* `FROZEN` - Customer and associated accounts have been temporarily locked for all actions. \n* `EDD` -  Customer requires enhanced due diligence to be performed. The customer and accounts will operate as if frozen. \n* `DORMANT` - No activity has been seen in the last 12 months. Customer and accounts are available for use.  \n\n",
            "schema": {
              "type": "string",
              "enum": [
                "ACTIVE",
                "CLOSED",
                "FROZEN",
                "PENDING",
                "EDD",
                "DORMANT"
              ]
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseCustomers"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "customers:read"
            ]
          }
        ],
        "x-order": {
          "value": "2"
        }
      }
    },
    "/v1/applications/{application_id}/status": {
      "get": {
        "tags": [
          "Applications"
        ],
        "summary": "Retrieve Application Status",
        "description": "Retrieve the detailed status of an application ",
        "operationId": "getApplicationStatus",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Application ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseApplicationState"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "applications:read"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits/{id}/transactions": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Transactions",
        "description": "Retrieves all transactions under the given account",
        "operationId": "getTransactions_1",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Account ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order by transaction date (ASC or DESC)",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ]
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "description": "Filter for transaction from this date",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "description": "Filter for transaction to this date",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransactions"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits/{id}/transactions/{id}": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Transaction",
        "description": "Retrieves details of a single transaction under the given account",
        "operationId": "getTransaction_1",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Transaction ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseTransactionDetails"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits/{id}/statements": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Statements",
        "description": "Retrieves a paginated list of statements for a given account id.",
        "operationId": "getStatements",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Account ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page of records to get (default 0 = first page)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Records to return per page (default = 20)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatements"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/accounts/deposits/{account_id}/statements/{statement_id}": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Retrieve Statement",
        "description": "Retrieves the statement for a specific month and year for a given account id.",
        "operationId": "getStatement",
        "parameters": [
          {
            "name": "account_id",
            "in": "path",
            "description": "Account ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statement_id",
            "in": "path",
            "description": "Statement ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseStatement"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "accounts:read"
            ]
          }
        ]
      }
    },
    "/v1/subscriptions/{subscription_id}": {
      "delete": {
        "tags": [
          "Subscriptions (Webhooks)"
        ],
        "summary": "Delete Subscription",
        "description": "Delete an existing subscription",
        "operationId": "deleteSubscription",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "OAuth bearer token (see authentication flows)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-request-id",
            "in": "header",
            "description": "Optional Unique ID per request, useful for fault resolution/diagnosis and audit.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-l2f-idempotency-id",
            "in": "header",
            "description": "Unique ID used to safely retry an operation. See [idempotency](https://docs.rail.io/guides/idempotence/) section for more details.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseSubscriptionBase"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseError"
                }
              }
            }
          }
        },
        "security": [
          {
            "OAuth2Flow": [
              "subscriptions:write"
            ]
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "ResponseWithdrawalBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalBase"
          }
        }
      },
      "WithdrawalBase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          }
        }
      },
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Layer2 Standard Error Code"
          },
          "description": {
            "type": "string",
            "description": "Error Description"
          }
        },
        "description": "Error List"
      },
      "ResponseError": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Error List",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Withdrawal": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          }
        },
        "discriminator": {
          "propertyName": "withdrawal_rail",
          "mapping": {
            "ACH": "#/components/schemas/WithdrawalACH",
            "FEDWIRE": "#/components/schemas/WithdrawalFedwire",
            "SEPA_CT": "#/components/schemas/WithdrawalSepaCT",
            "SWIFT": "#/components/schemas/WithdrawalSwift",
            "CRYPTO": "#/components/schemas/WithdrawalCrypto",
            "CHAPS": "#/components/schemas/WithdrawalChaps",
            "FPS": "#/components/schemas/WithdrawalFps",
            "IMPS": "#/components/schemas/WithdrawalImps",
            "SPEI": "#/components/schemas/WithdrawalSPEI",
            "UAEFTS": "#/components/schemas/WithdrawalUAEFTS"
          }
        }
      },
      "WithdrawalACH": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 10,
            "type": "string",
            "description": "Memo to provide on the outbound ACH"
          }
        }
      },
      "WithdrawalChaps": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 17,
            "type": "string",
            "description": "Memo to provide on the outbound CHAPS"
          }
        }
      },
      "WithdrawalCrypto": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          }
        }
      },
      "WithdrawalFedwire": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 50,
            "type": "string",
            "description": "Memo to provide on the outbound Fedwire"
          }
        }
      },
      "WithdrawalFps": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 17,
            "type": "string",
            "description": "Memo to provide on the outbound FPS"
          }
        }
      },
      "WithdrawalImps": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 50,
            "type": "string",
            "description": "Memo to provide on the outbound IMPS"
          }
        }
      },
      "WithdrawalSPEI": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 1,
            "type": "string",
            "description": "Memo to provide on the outbound SPEI"
          }
        }
      },
      "WithdrawalSepaCT": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 140,
            "type": "string",
            "description": "Memo to provide on the outbound SEPA CT"
          }
        }
      },
      "WithdrawalSwift": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 140,
            "type": "string",
            "description": "Memo to provide on the outbound SWIFT"
          }
        }
      },
      "WithdrawalUAEFTS": {
        "required": [
          "amount",
          "created_timestamp",
          "destination_counterparty_id",
          "purpose",
          "source_account_id",
          "withdrawal_rail"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the withdrawal request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "withdrawal_rail": {
            "type": "string",
            "description": "The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration.",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SEPA_CT",
              "SWIFT",
              "CRYPTO",
              "EFT"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the transaction"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account ID from which funds will be withdrawn."
          },
          "purpose": {
            "type": "string",
            "description": "Purpose of the withdrawal. (Note: The purpose \"PERSONAL_ACCOUNT\" is only valid with counterparties that have profile.relationship_to_customer set as \"SELF\".)",
            "enum": [
              "PERSONAL_ACCOUNT",
              "FAMILY",
              "INSURANCE",
              "INVESTMENT",
              "REAL_ESTATE",
              "TUITION",
              "MEDICAL",
              "TRAVEL",
              "TRADE_TRANSACTIONS",
              "UTILITY",
              "TAX",
              "LOAN",
              "BILLS",
              "PAYROLL",
              "TELECOM",
              "INTELLECTUAL_PROPERTY",
              "CHARITABLE_DONATIONS",
              "MORTGAGE",
              "EXPENSES_REIMBURSEMENT",
              "PROFESSIONAL_SERVICES",
              "MARKETING",
              "RENTAL_PROPERTY"
            ]
          },
          "amount": {
            "type": "number",
            "description": "Amount to be withdrawn (uses the source account currency)"
          },
          "destination_counterparty_id": {
            "type": "string",
            "description": "Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information."
          },
          "memo": {
            "maxLength": 100,
            "type": "string",
            "description": "Memo to provide on the outbound UAEFTS"
          }
        }
      },
      "ResponseWithdrawalCancellation": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalCancel"
          }
        }
      },
      "WithdrawalCancel": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal cancellation",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal cancellation. This will always be `CANCELLING`.",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          }
        }
      },
      "ResponseTransfer": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Transfer"
          }
        }
      },
      "Transfer": {
        "required": [
          "created_timestamp",
          "destination_details",
          "id",
          "source_details",
          "status",
          "valid_until"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the transfer request, to be used to accept the transfer and lookup status",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the transfer. Cannot be modified directly by the client. \n* `REQUESTED` - Transfer request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Transfer request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a transfer request was not accepted within a reasonable time frame. The transfer cannot be replayed from this state.  \n* `CANCELLED` - Transfer request was cancelled. Only available prior to acceptance. The transfer request cannot be replayed from this state.  \n* `EXECUTED` -  Transfer request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Transfer request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "ACCEPTED",
              "EXPIRED",
              "CANCELLED",
              "EXECUTED",
              "REJECTED"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the transfer request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "valid_until": {
            "type": "string",
            "description": "Time when this transfer request expires and can no longer be accepted. Upon expiry a new transfer must be requested",
            "format": "date-time",
            "readOnly": true
          },
          "source_details": {
            "$ref": "#/components/schemas/TransferSourceAccount"
          },
          "destination_details": {
            "$ref": "#/components/schemas/TransferDestinationAccount"
          }
        }
      },
      "TransferDestinationAccount": {
        "required": [
          "amount_to_credit",
          "destination_account_id"
        ],
        "type": "object",
        "properties": {
          "destination_account_id": {
            "type": "string",
            "description": "Destination account ID"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "amount_to_credit": {
            "type": "number",
            "description": "Amount that will be credited to the destination account"
          }
        },
        "description": "Details of transaction to be performed on the destination account on acceptance"
      },
      "TransferSourceAccount": {
        "required": [
          "amount_to_debit",
          "source_account_id"
        ],
        "type": "object",
        "properties": {
          "source_account_id": {
            "type": "string",
            "description": "Source account ID"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include. \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "amount_to_debit": {
            "type": "number",
            "description": "Amount that will be debited from the source account"
          }
        },
        "description": "Details of transaction to be performed on the source account on acceptance"
      },
      "RequestTransfer": {
        "required": [
          "amount",
          "destination_account_id",
          "source_account_id"
        ],
        "type": "object",
        "properties": {
          "source_account_id": {
            "type": "string",
            "description": "Source account from which funds will be withdrawn"
          },
          "destination_account_id": {
            "type": "string",
            "description": "Destination account where funds will be deposited"
          },
          "amount": {
            "type": "number",
            "description": "Amount to transfer from the source account to the destination account"
          },
          "description": {
            "type": "string",
            "description": "(Optional) Description of the transfer"
          }
        }
      },
      "ResponseTransferBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/TransferBase"
          }
        }
      },
      "TransferBase": {
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the transfer request, to be used to accept the transfer and lookup status",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the transfer. Cannot be modified directly by the client. \n* `REQUESTED` - Transfer request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Transfer request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a transfer request was not accepted within a reasonable time frame. The transfer cannot be replayed from this state.  \n* `CANCELLED` - Transfer request was cancelled. Only available prior to acceptance. The transfer request cannot be replayed from this state.  \n* `EXECUTED` -  Transfer request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Transfer request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "ACCEPTED",
              "EXPIRED",
              "CANCELLED",
              "EXECUTED",
              "REJECTED"
            ]
          }
        }
      },
      "ResponseSubscription": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Subscription"
          }
        }
      },
      "Subscription": {
        "required": [
          "callback_url",
          "event_type",
          "id",
          "signature_verification_key"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Subscription ID",
            "readOnly": true
          },
          "event_type": {
            "type": "string",
            "description": "Subscription Event Type",
            "enum": [
              "ACCOUNT_EDD_L2F",
              "ACCOUNT_FROZEN_L2F",
              "ACCOUNT_PENDING_L2F",
              "ACCOUNT_CLOSED",
              "ACCOUNT_DORMANT",
              "ACCOUNT_EDD",
              "ACCOUNT_FROZEN",
              "ACCOUNT_OPEN",
              "ACCOUNT_PENDING",
              "ACCOUNT_DEPOSIT_INSTRUCTIONS_UPDATE",
              "APPLICATION_CHANGE_REQUESTED",
              "APPLICATION_READY_FOR_SUBMISSION",
              "APPLICATION_APPROVED",
              "APPLICATION_INCOMPLETE",
              "APPLICATION_PROCESSING",
              "APPLICATION_REJECTED",
              "APPLICATION_SUBMITTED",
              "COUNTERPARTY_EDD_L2F",
              "COUNTERPARTY_FROZEN_L2F",
              "COUNTERPARTY_PENDING_L2F",
              "COUNTERPARTY_ACTIVE",
              "COUNTERPARTY_CLOSED",
              "COUNTERPARTY_EDD",
              "COUNTERPARTY_FROZEN",
              "COUNTERPARTY_PENDING",
              "CUSTOMER_EDD_L2F",
              "CUSTOMER_FROZEN_L2F",
              "CUSTOMER_PENDING_L2F",
              "CUSTOMER_ACTIVE",
              "CUSTOMER_CLOSED",
              "CUSTOMER_EDD",
              "CUSTOMER_FROZEN",
              "CUSTOMER_PENDING",
              "TRANSACTION_AUTHORIZED",
              "TRANSACTION_CANCELLED",
              "TRANSACTION_PENDING",
              "TRANSACTION_POSTED",
              "WITHDRAWAL_CHANGES_REQUESTED"
            ]
          },
          "callback_url": {
            "type": "string",
            "description": "Endpoint to call on event"
          },
          "signature_verification_key": {
            "type": "string",
            "description": "Signature verification key",
            "readOnly": true
          }
        },
        "description": "Subscription List"
      },
      "PaymentBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the payment, to be used to lookup payment details and status",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the payment\n* `REQUESTED` - Payment request is created and has passed validation. It must be accepted before it can be used \n* `ACCEPTED` - Payment request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `INPROGRESS` - Payment is in progress. \n* `EXECUTED` -  Payment Processing have been completed.  \n* `FAILURE` - There is a problem or failure with the payment. View payment details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "ACCEPTED",
              "INPROGRESS",
              "EXECUTED",
              "FAILURE"
            ]
          }
        }
      },
      "ResponsePaymentBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/PaymentBase"
          }
        }
      },
      "Instruction": {
        "required": [
          "instruction_type"
        ],
        "type": "object",
        "properties": {
          "instruction_type": {
            "type": "string",
            "description": "Type of Instruction",
            "example": "CRYPTO",
            "enum": [
              "CRYPTO",
              "ACH",
              "FEDWIRE",
              "SWIFT"
            ]
          }
        },
        "description": "List of all available deposit instructions for this account. For crypto accounts typically expect a single entry. For FIAT accounts, there may be several entries for each of the supported rails on that account type. ",
        "readOnly": true,
        "example": [
          {
            "instruction_type": "CRYPTO",
            "address": "0x000121",
            "blockchain": "ETHEREUM",
            "network": "MAINNET",
            "asset_type_id": "ETHEREUM_MAINNET_ETH"
          },
          {
            "instruction_type": "SWIFT",
            "account_holder_name": "string",
            "account_number": "string",
            "account_routing_number": "string",
            "swift_bic": "string",
            "account_holder_address": {
              "unit_number": "string",
              "address_line1": "string",
              "address_line2": "string",
              "address_line3": "string",
              "city": "string",
              "state": "string",
              "postal_code": "string",
              "country_code": "string"
            },
            "institution_name": "string",
            "institution_address": {
              "unit_number": "string",
              "address_line1": "string",
              "address_line2": "string",
              "address_line3": "string",
              "city": "string",
              "state": "string",
              "postal_code": "string",
              "country_code": "string"
            },
            "asset_type_id": "string"
          },
          {
            "instruction_type": "FEDWIRE",
            "account_holder_name": "string",
            "account_number": "string",
            "account_routing_number": "string",
            "account_holder_address": {
              "unit_number": "string",
              "address_line1": "string",
              "address_line2": "string",
              "address_line3": "string",
              "city": "string",
              "state": "string",
              "postal_code": "string",
              "country_code": "string"
            },
            "institution_name": "string",
            "institution_address": {
              "unit_number": "string",
              "address_line1": "string",
              "address_line2": "string",
              "address_line3": "string",
              "city": "string",
              "state": "string",
              "postal_code": "string",
              "country_code": "string"
            },
            "memo": "string",
            "asset_type_id": "string"
          },
          {
            "instruction_type": "ACH",
            "account_holder_name": "string",
            "account_number": "string",
            "account_routing_number": "string",
            "description": "string",
            "asset_type_id": "string"
          }
        ],
        "discriminator": {
          "propertyName": "instruction_type",
          "mapping": {
            "CRYPTO": "#/components/schemas/InstructionCrypto",
            "FEDWIRE": "#/components/schemas/InstructionFedwire",
            "ACH": "#/components/schemas/InstructionAch",
            "SWIFT": "#/components/schemas/InstructionSwift"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/InstructionCrypto"
          },
          {
            "$ref": "#/components/schemas/InstructionFedwire"
          },
          {
            "$ref": "#/components/schemas/InstructionAch"
          },
          {
            "$ref": "#/components/schemas/InstructionSwift"
          }
        ]
      },
      "InstructionAch": {
        "required": [
          "account_holder_name",
          "account_number",
          "account_routing_number",
          "instruction_type",
          "memo"
        ],
        "type": "object",
        "properties": {
          "instruction_type": {
            "type": "string",
            "description": "Type of Instruction",
            "example": "CRYPTO",
            "enum": [
              "CRYPTO",
              "ACH",
              "FEDWIRE"
            ]
          },
          "account_holder_name": {
            "type": "string",
            "description": "Name on account to send fund to"
          },
          "account_number": {
            "type": "string",
            "description": "Account number to send funds to"
          },
          "account_routing_number": {
            "type": "string",
            "description": "Routing number of account to send funds to"
          },
          "memo": {
            "maxLength": 10,
            "type": "string",
            "description": "Memo to provide on the ACH. It is critical that the memo be completed accurately and completely when sending the ACH. Failure to do so may severely delay processing of the deposit"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include. \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          }
        }
      },
      "InstructionCrypto": {
        "required": [
          "address",
          "blockchain",
          "instruction_type",
          "network"
        ],
        "type": "object",
        "properties": {
          "instruction_type": {
            "type": "string",
            "description": "Type of Instruction",
            "example": "CRYPTO",
            "enum": [
              "CRYPTO",
              "ACH",
              "FEDWIRE"
            ]
          },
          "address": {
            "type": "string",
            "description": "Issued address for the receipt of funds."
          },
          "blockchain": {
            "type": "string",
            "description": "Blockchain the address is issued for use on"
          },
          "network": {
            "type": "string",
            "description": "Network (on the target blockchain) that the address is issued for use on"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include. \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          }
        }
      },
      "InstructionFedwire": {
        "required": [
          "account_holder_address",
          "account_holder_name",
          "account_number",
          "account_routing_number",
          "institution_address",
          "instruction_type",
          "memo"
        ],
        "type": "object",
        "properties": {
          "instruction_type": {
            "type": "string",
            "description": "Type of Instruction",
            "example": "CRYPTO",
            "enum": [
              "CRYPTO",
              "ACH",
              "FEDWIRE"
            ]
          },
          "account_holder_name": {
            "type": "string",
            "description": "Name on account to send fund to"
          },
          "account_number": {
            "type": "string",
            "description": "Account number to send funds to"
          },
          "account_routing_number": {
            "type": "string",
            "description": "Routing number of account to send funds to"
          },
          "account_holder_address": {
            "$ref": "#/components/schemas/account_holder_address"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "memo": {
            "maxLength": 50,
            "type": "string",
            "description": "Memo to provide on the Fedwire. It is critical that the memo be completed accurately and completely when sending the Fedwire. Failure to do so may severely delay processing of the deposit"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include. \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          }
        }
      },
      "InstructionSwift": {
        "required": [
          "account_holder_address",
          "account_holder_name",
          "account_number",
          "account_routing_number",
          "institution_address",
          "institution_name",
          "instruction_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "instruction_type": {
            "type": "string",
            "description": "Type of Instruction",
            "example": "CRYPTO",
            "enum": [
              "CRYPTO",
              "ACH",
              "FEDWIRE"
            ]
          },
          "account_holder_name": {
            "type": "string",
            "description": "Name on account to send fund to"
          },
          "account_number": {
            "type": "string",
            "description": "Account number to send funds to"
          },
          "account_routing_number": {
            "type": "string",
            "description": "Routing number of account to send funds to"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "account_holder_address": {
            "$ref": "#/components/schemas/account_holder_address"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include. \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          }
        }
      },
      "Payment": {
        "required": [
          "id",
          "payment_destination",
          "payment_info",
          "payment_source"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the payment, to be used to lookup payment details and status",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the payment\n* `REQUESTED` - Payment request is created and has passed validation. It must be accepted before it can be used \n* `ACCEPTED` - Payment request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `INPROGRESS` - Payment is in progress. \n* `EXECUTED` -  Payment Processing have been completed.  \n* `FAILURE` - There is a problem or failure with the payment. View payment details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "ACCEPTED"
            ]
          },
          "payment_source": {
            "$ref": "#/components/schemas/PaymentSource"
          },
          "payment_destination": {
            "$ref": "#/components/schemas/PaymentDestination"
          },
          "payment_info": {
            "$ref": "#/components/schemas/PaymentInfo"
          }
        }
      },
      "PaymentDestination": {
        "type": "object",
        "description": "Ultimate destination of funds for the payment request",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentDestinationAccount"
          }
        ]
      },
      "PaymentDestinationAccount": {
        "required": [
          "account_id"
        ],
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string",
            "description": "Destination account ID"
          }
        }
      },
      "PaymentInfo": {
        "required": [
          "amount",
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the payment"
          },
          "amount": {
            "type": "string",
            "description": "Amount of the payment"
          }
        },
        "description": "Payment information"
      },
      "PaymentSource": {
        "type": "object",
        "description": "Source of funds for the payment request",
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentSourceCounterparty"
          }
        ]
      },
      "PaymentSourceCounterparty": {
        "required": [
          "asset_type",
          "deposit_instructions",
          "source_counterparty_id"
        ],
        "type": "object",
        "properties": {
          "source_counterparty_id": {
            "type": "string",
            "description": "Counterparty ID from which funds will be collected (received) from."
          },
          "asset_type": {
            "type": "array",
            "description": "The asset types you wish to make available for receiving the payment on. ",
            "items": {
              "type": "string",
              "description": "The asset types you wish to make available for receiving the payment on. "
            }
          },
          "deposit_instructions": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "description": "Deposit instructions for different asset types",
              "readOnly": true,
              "items": {
                "$ref": "#/components/schemas/Instruction"
              }
            },
            "description": "Deposit instructions for different asset types",
            "readOnly": true
          }
        }
      },
      "account_holder_address": {
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Account Holder Address"
      },
      "institution_address": {
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Address of institution"
      },
      "Exchange": {
        "required": [
          "action",
          "created_timestamp",
          "destination_details",
          "exchange_type",
          "id",
          "source_details",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the exchange request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the Exchange. Cannot be modified directly by the client. \n* `REQUESTED` - Exchange request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Exchange request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when an exchange request was not accepted within a reasonable time frame. The exchange cannot be replayed from this state.  \n* `CANCELLED` - Exchange request was cancelled. Only available prior to acceptance. The exchange request cannot be replayed from this state.  \n* `EXECUTED` -  Exchange request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Exchange request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "ACCEPTED",
              "EXPIRED",
              "CANCELLED",
              "EXECUTED",
              "REJECTED"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the exchange request was generated",
            "format": "date-time"
          },
          "exchange_type": {
            "type": "string",
            "description": "The type of exchange being performed.",
            "readOnly": true,
            "enum": [
              "MARKET",
              "QUOTE"
            ]
          },
          "action": {
            "type": "string",
            "description": "The action defines which side of the exchange to fix.  \n* `FIX_DESTINATION` - This fixes the amount to credit to the `DESTINATION` account, therefore the quote provided is for how much to deduct from the `SOURCE` account. Think of this as 'buying' the destination amount.\n* `FIX_SOURCE` - This fixes the amount you want to debit from the `SOURCE` account, therefore the quote provided is for how much would be credited to the `DESTINATION` account. Think of this as 'selling' the source amount. \n\n",
            "enum": [
              "FIX_DESTINATION",
              "FIX_SOURCE"
            ]
          },
          "source_details": {
            "$ref": "#/components/schemas/TransferSourceAccount"
          },
          "destination_details": {
            "$ref": "#/components/schemas/TransferDestinationAccount"
          }
        }
      },
      "ResponseExchange": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Exchange"
          }
        }
      },
      "RequestExchangeAccept": {
        "type": "object",
        "properties": {
          "maximum_slippage": {
            "type": "number",
            "description": "Default value: 0.01\n\nThe maximum slippage rail will consider when accepting this order. Defined in bps and represented as a percentage. So 10bps would be presented as 0.001. Must be greater than or equal to 0.\n\nWe calculate slippage based on the quote you are accepting. While the slippage may not always be used, it is there to ensure a better completion/fill rate with our market makers. \n\nWhere the quote cannot be fulfilled within the slippage tolerance, the exchange response status will be ```CANCELLED```. \n"
          }
        }
      },
      "RequestExchange": {
        "required": [
          "action",
          "amount",
          "destination_account_id",
          "source_account_id"
        ],
        "type": "object",
        "properties": {
          "source_account_id": {
            "type": "string",
            "description": "Source account from which funds will be withdrawn"
          },
          "destination_account_id": {
            "type": "string",
            "description": "Destination account where funds will be deposited"
          },
          "amount": {
            "type": "number",
            "description": "The amount to be exchanged depending on the the `action`. "
          },
          "action": {
            "type": "string",
            "description": "Type of exchange being performed. \n* `FIX_DESTINATION` - This fixes the amount to credit to the `DESTINATION` account, therefore the quote provided is for how much to deduct from the `SOURCE` account. Think of this as 'buying' the destination amount.\n* `FIX_SOURCE` - This fixes the amount you want to debit from the `SOURCE` account, therefore the quote provided is for how much would be credited to the `DESTINATION` account. Think of this as 'selling' the source amount. \n\n",
            "enum": [
              "FIX_DESTINATION",
              "FIX_SOURCE"
            ]
          },
          "description": {
            "type": "string",
            "description": "(Optional) Description of the transaction"
          }
        }
      },
      "DocumentBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the document",
            "readOnly": true,
            "example": "905666e7-2d5b-4ac4-bd96-e02675fc678f"
          }
        }
      },
      "ResponseDocumentBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DocumentBase"
          }
        }
      },
      "DEPOSIT_PUSH": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DepositPush"
          }
        }
      },
      "DepositDestinationAccount": {
        "required": [
          "asset_type_id",
          "destination_account_id"
        ],
        "type": "object",
        "properties": {
          "destination_account_id": {
            "type": "string",
            "description": "Destination account ID"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n",
            "readOnly": true
          }
        },
        "description": "Destination account on platform into which funds will be deposited"
      },
      "DepositPush": {
        "required": [
          "created_timestamp",
          "customer_name",
          "deposit_destination",
          "deposit_source",
          "deposit_type",
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the deposit instance, to be used to lookup deposit status and historical deposits",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the deposit. \n* `REQUESTED` - Deposit request is created and deposits can be made. \n* `EXECUTED` -  At least 1 deposit was received and successfully processed.  \n* `FAILURE` - There is a problem or failure with an incoming deposit. View deposit details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "EXECUTED",
              "FAILURE"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the deposit request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "deposit_type": {
            "type": "string",
            "description": "How should the deposit be made. PUSH (manually sent by customer) or PULL (automatically pulled via a linked counterparty using a supported rail). \nIf performing a PULL, several conditions apply. \n\nConditions:\n\n- The destination account must be for an asset type that supports pull deposits (e.g. USD, CAD)\n- The source counterparty must be linked and have an available rail that supports ones of the deposit mechanisms on the destination account (e.g. ACH, EFT). \n\n- The deposit request MUST be accepted using the /deposit/accept endpoint to initiate the pull deposit",
            "enum": [
              "PUSH",
              "PULL"
            ]
          },
          "deposit_destination": {
            "$ref": "#/components/schemas/DepositDestinationAccount"
          },
          "customer_name": {
            "type": "string",
            "description": "Customer name for whom the deposit was created"
          },
          "deposit_source": {
            "$ref": "#/components/schemas/DepositSource"
          }
        }
      },
      "DepositSource": {
        "required": [
          "deposit_instructions"
        ],
        "type": "object",
        "properties": {
          "deposit_instructions": {
            "type": "array",
            "description": "List of all available deposit instructions for this account. For crypto accounts typically expect a single entry. For FIAT accounts, there may be several entries for each of the supported rails on that account type. ",
            "readOnly": true,
            "example": [
              {
                "instruction_type": "CRYPTO",
                "address": "0x000121",
                "blockchain": "ETHEREUM",
                "network": "MAINNET",
                "asset_type_id": "ETHEREUM_MAINNET_ETH"
              },
              {
                "instruction_type": "SWIFT",
                "account_holder_name": "string",
                "account_number": "string",
                "account_routing_number": "string",
                "swift_bic": "string",
                "account_holder_address": {
                  "unit_number": "string",
                  "address_line1": "string",
                  "address_line2": "string",
                  "address_line3": "string",
                  "city": "string",
                  "state": "string",
                  "postal_code": "string",
                  "country_code": "string"
                },
                "institution_name": "string",
                "institution_address": {
                  "unit_number": "string",
                  "address_line1": "string",
                  "address_line2": "string",
                  "address_line3": "string",
                  "city": "string",
                  "state": "string",
                  "postal_code": "string",
                  "country_code": "string"
                },
                "asset_type_id": "string"
              },
              {
                "instruction_type": "FEDWIRE",
                "account_holder_name": "string",
                "account_number": "string",
                "account_routing_number": "string",
                "account_holder_address": {
                  "unit_number": "string",
                  "address_line1": "string",
                  "address_line2": "string",
                  "address_line3": "string",
                  "city": "string",
                  "state": "string",
                  "postal_code": "string",
                  "country_code": "string"
                },
                "institution_name": "string",
                "institution_address": {
                  "unit_number": "string",
                  "address_line1": "string",
                  "address_line2": "string",
                  "address_line3": "string",
                  "city": "string",
                  "state": "string",
                  "postal_code": "string",
                  "country_code": "string"
                },
                "memo": "string",
                "asset_type_id": "string"
              },
              {
                "instruction_type": "ACH",
                "account_holder_name": "string",
                "account_number": "string",
                "account_routing_number": "string",
                "description": "string",
                "asset_type_id": "string"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/Instruction"
            }
          }
        },
        "description": "Instructions of where to send (push) deposits. ",
        "readOnly": true
      },
      "DEPOSIT_PULL": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DepositPull"
          }
        }
      },
      "DepositDetails": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "description": "Amount of funds to pull from the linked counterparty into the deposit account. In the currency of the linked counterparty. "
          },
          "reference": {
            "type": "string",
            "description": "Reference for the transaction to appear on the counterparty account where permissible."
          }
        },
        "description": "Details of the the deposit "
      },
      "DepositPull": {
        "required": [
          "created_timestamp",
          "deposit_destination",
          "deposit_details",
          "deposit_source",
          "deposit_type",
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the deposit instance, to be used to lookup deposit status and historical deposits",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the deposit. \n* `REQUESTED` - Deposit request is created and deposits can be made. \n* `EXECUTED` -  At least 1 deposit was received and successfully processed.  \n* `FAILURE` - There is a problem or failure with an incoming deposit. View deposit details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "EXECUTED",
              "FAILURE"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the deposit request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "deposit_type": {
            "type": "string",
            "description": "How should the deposit be made. PUSH (manually sent by customer) or PULL (automatically pulled via a linked counterparty using a supported rail). \nIf performing a PULL, several conditions apply. \n\nConditions:\n\n- The destination account must be for an asset type that supports pull deposits (e.g. USD, CAD)\n- The source counterparty must be linked and have an available rail that supports ones of the deposit mechanisms on the destination account (e.g. ACH, EFT). \n\n- The deposit request MUST be accepted using the /deposit/accept endpoint to initiate the pull deposit",
            "enum": [
              "PUSH",
              "PULL"
            ]
          },
          "deposit_destination": {
            "$ref": "#/components/schemas/DepositDestinationAccount"
          },
          "deposit_source": {
            "$ref": "#/components/schemas/DepositSourceCounterparty"
          },
          "deposit_details": {
            "$ref": "#/components/schemas/DepositDetails"
          }
        }
      },
      "DepositSourceCounterparty": {
        "required": [
          "asset_type_id",
          "source_counterparty_id"
        ],
        "type": "object",
        "properties": {
          "source_counterparty_id": {
            "type": "string",
            "description": "Linked counterparty to pull funds from. "
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n",
            "readOnly": true
          }
        },
        "description": "Counterparty from which deposit will be pulled."
      },
      "Deposit": {
        "required": [
          "created_timestamp",
          "deposit_type",
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the deposit instance, to be used to lookup deposit status and historical deposits",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the deposit. \n* `REQUESTED` - Deposit request is created and deposits can be made. \n* `EXECUTED` -  At least 1 deposit was received and successfully processed.  \n* `FAILURE` - There is a problem or failure with an incoming deposit. View deposit details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "EXECUTED",
              "FAILURE"
            ]
          },
          "created_timestamp": {
            "type": "string",
            "description": "Time when the deposit request was generated",
            "format": "date-time",
            "readOnly": true
          },
          "deposit_type": {
            "type": "string",
            "description": "How should the deposit be made. PUSH (manually sent by customer) or PULL (automatically pulled via a linked counterparty using a supported rail). \nIf performing a PULL, several conditions apply. \n\nConditions:\n\n- The destination account must be for an asset type that supports pull deposits (e.g. USD, CAD)\n- The source counterparty must be linked and have an available rail that supports ones of the deposit mechanisms on the destination account (e.g. ACH, EFT). \n\n- The deposit request MUST be accepted using the /deposit/accept endpoint to initiate the pull deposit",
            "enum": [
              "PUSH",
              "PULL"
            ]
          }
        },
        "discriminator": {
          "propertyName": "deposit_type",
          "mapping": {
            "PUSH": "#/components/schemas/DepositPush",
            "PULL": "#/components/schemas/DepositPull"
          }
        }
      },
      "DepositBase": {
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the deposit instance, to be used to lookup deposit status and historical deposits",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the deposit. \n* `REQUESTED` - Deposit request is created and deposits can be made. \n* `EXECUTED` -  At least 1 deposit was received and successfully processed.  \n* `FAILURE` - There is a problem or failure with an incoming deposit. View deposit details for more information.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "EXECUTED",
              "FAILURE"
            ]
          }
        }
      },
      "ResponseDepositBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/DepositBase"
          }
        }
      },
      "CounterPartyBase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          }
        }
      },
      "ResponseCounterpartyBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CounterPartyBase"
          }
        }
      },
      "AddressProfileStateRequired": {
        "required": [
          "country_code",
          "state"
        ],
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Address of the counterparty (individual or business name)"
      },
      "CounterParty": {
        "required": [
          "counterparty_type",
          "customer_id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          }
        },
        "discriminator": {
          "propertyName": "counterparty_type",
          "mapping": {
            "FIAT_US": "#/components/schemas/CounterPartyFIATUS",
            "FIAT_CN": "#/components/schemas/CounterPartyFIATCN",
            "FIAT_HK": "#/components/schemas/CounterPartyFIATHK",
            "FIAT_SG": "#/components/schemas/CounterPartyFIATSG",
            "FIAT_JP": "#/components/schemas/CounterPartyFIATJP",
            "FIAT_MY": "#/components/schemas/CounterPartyFIATMY",
            "FIAT_PA": "#/components/schemas/CounterPartyFIATPA",
            "FIAT_CA": "#/components/schemas/CounterPartyFIATCA",
            "FIAT_BS": "#/components/schemas/CounterPartyFIATBS",
            "FIAT_EU": "#/components/schemas/CounterPartyFIATEU",
            "FIAT_GB": "#/components/schemas/CounterPartyFIATGB",
            "FIAT_IN": "#/components/schemas/CounterPartyFIATIN",
            "FIAT_US_LINKED": "#/components/schemas/CounterPartyFIATUSLINKED",
            "CRYPTO": "#/components/schemas/CounterPartyCRYPTO",
            "BASIC": "#/components/schemas/CounterPartyBASIC",
            "FIAT_IBAN": "#/components/schemas/CounterPartyFIATIBAN",
            "FIAT_ACCNO": "#/components/schemas/CounterPartyFIATACCNO"
          }
        }
      },
      "CounterPartyAccountCRYPTO": {
        "required": [
          "blockchain_address",
          "wallet_type"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "blockchain_address": {
            "type": "string",
            "description": "Blockchain address of the recipient where funds will be sent. IMPORTANT: Ensure that this address is valid for the asset type of the source account (blockchain, network, currency). Incorrect addresses will result in unrecoverable loss of funds"
          },
          "wallet_type": {
            "type": "string",
            "description": "Type of wallet that will hold/custody these funds for the recipient owner (e.g. Custodian, Private Wallet etc)",
            "enum": [
              "INSTITUTION",
              "OTHER",
              "UNKNOWN"
            ]
          },
          "institution_name": {
            "type": "string",
            "description": "Destination Institution Name (e.g. Bank of America) if `wallet_type` is `Institution`"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the recipient wallet. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATACCNO": {
        "required": [
          "account_number",
          "routing_number"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "type": {
            "type": "string",
            "description": "Counterparty account type.",
            "enum": [
              "CHECKING",
              "SAVING"
            ]
          },
          "routing_number": {
            "type": "string",
            "description": "Counterparty routing number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATBS": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "type": {
            "type": "string",
            "description": "Counterparty account type.",
            "enum": [
              "CHECKING",
              "SAVING"
            ]
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATCA": {
        "required": [
          "institution_address",
          "institution_name",
          "institution_number"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "institution_number": {
            "type": "string",
            "description": "Counterparty institution number"
          },
          "transit_number": {
            "type": "string",
            "description": "Counterparty transit number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Royal Bank of Canada)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATCN": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATEU": {
        "required": [
          "iban",
          "institution_address",
          "institution_name",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "iban": {
            "type": "string",
            "description": "Counterparty International Bank Account Number (IBAN)"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Banco Santander)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATGB": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "sort_code": {
            "type": "string",
            "description": "Counterparty institution sort code (######)"
          },
          "iban": {
            "type": "string",
            "description": "Counterparty International Bank Account Number (IBAN)"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Banco Santander)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATHK": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATIBAN": {
        "required": [
          "iban",
          "institution_address",
          "institution_name",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "iban": {
            "type": "string",
            "description": "Counterparty International Bank Account Number (IBAN)"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Banco Santander)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATIN": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "ifsc": {
            "type": "string",
            "description": "Counterparty Indian Financial System Code (IFSC)"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATJP": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATMY": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATPA": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATSG": {
        "required": [
          "account_number",
          "institution_address",
          "institution_name"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATUS": {
        "required": [
          "account_number",
          "routing_number"
        ],
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_number": {
            "type": "string",
            "description": "Counterparty account number"
          },
          "type": {
            "type": "string",
            "description": "Counterparty account type.",
            "enum": [
              "CHECKING",
              "SAVING"
            ]
          },
          "routing_number": {
            "type": "string",
            "description": "Counterparty routing number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Counterparty SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyAccountFIATUSLINKED": {
        "type": "object",
        "properties": {
          "asset_type_id": {
            "type": "string",
            "description": "Destination asset type. Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "account_name": {
            "type": "string",
            "description": "Account name generated using linking",
            "readOnly": true
          },
          "abbreviated_account_number": {
            "type": "string",
            "description": "Abbreviated account number (typically the last 4 digits e.g. x1234)",
            "readOnly": true
          }
        },
        "description": "Details of the counter party account and institution. Required fields are determined by the combination of required needed rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyBASIC": {
        "required": [
          "counterparty_type",
          "customer_id",
          "profile",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileCRYPTO"
          }
        }
      },
      "CounterPartyCRYPTO": {
        "required": [
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails",
          "wallet_information"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "default": "[\"CRYPTO\"]",
              "enum": [
                "CRYPTO"
              ]
            },
            "default": [
              "CRYPTO"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileCRYPTO"
          },
          "wallet_information": {
            "$ref": "#/components/schemas/CounterPartyAccountCRYPTO"
          }
        }
      },
      "CounterPartyFIATACCNO": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATACCNO"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATACCNO"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATBS": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "ACH",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATBS"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATBS"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATCA": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "EFT",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATCA"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATCA"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATCN": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATCN"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATCN"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATEU": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SEPA_CT",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATEU"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATEU"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATGB": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "FPS",
                "CHAPS",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATGB"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATGB"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATHK": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATHK"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATHK"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATIBAN": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATIBAN"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATIBAN"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATIN": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "IMPS",
                "NFT",
                "UP",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATIN"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATIN"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATJP": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATJP"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATJP"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATMY": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATMY"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATMY"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATPA": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATPA"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATPA"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATSG": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATSG"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATSG"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATUS": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "enum": [
                "ACH",
                "FEDWIRE",
                "SWIFT"
              ]
            }
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATUS"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATUS"
          },
          "intermediary_information": {
            "$ref": "#/components/schemas/CounterPartyIntermediary"
          }
        }
      },
      "CounterPartyFIATUSLINKED": {
        "required": [
          "account_information",
          "counterparty_type",
          "customer_id",
          "profile",
          "status",
          "supported_rails"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the counter party",
            "readOnly": true
          },
          "customer_id": {
            "type": "string",
            "description": "The customer to which this counter party will be registered for use."
          },
          "description": {
            "type": "string",
            "description": "Description of the counterparty. "
          },
          "counterparty_type": {
            "type": "string",
            "description": "Identifies the geographic location of the counterparty's bank account. This determines the available payment rails and required account fields. Note: counterparty_type reflects account location, not the currency of the funds. Use asset_type_id to specify the destination currency. See the guides for a full breakdown of counterparty types and required fields.",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "status": {
            "type": "string",
            "description": "Counterparty status determines options available for use on the counterparty. \n* `ACTIVE` - Counterparty is open and available for use for withdrawal or deposits\n* `CLOSED` - Counterparty is permanently closed, no further actions can be performed on the Counterparty. \n* `PENDING` - Counterparty is under additional review prior to moving to the `OPEN` or `CLOSED` state. No actions can be performed on the Counterparty in this state  \n* `FROZEN` - Counterparty has been temporarily locked for all actions. \n* `EDD` -  Counterparty requires enhanced due diligence to be performed. The counterparty will operate as if active but may transition to `FROZEN` or `CLOSED` post due-diligence. \n* `DORMANT` - No activity has been seen in the last 12 months. The counterparty is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "supported_rails": {
            "type": "array",
            "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
            "items": {
              "type": "string",
              "description": "The rails required for this counterparty. Rail selection will determine data requirements. See guides for full breakdowns.",
              "default": "[\"ACH\"]",
              "enum": [
                "ACH"
              ]
            },
            "default": [
              "ACH"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/CounterPartyProfileFIATUS"
          },
          "account_information": {
            "$ref": "#/components/schemas/CounterPartyAccountFIATUSLINKED"
          }
        }
      },
      "CounterPartyIntermediary": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Optional details of the intermediary (correspondent bank) institution when sending SWIFT payments. `SWIFT` must be added to the `support_rail` list in order to provide an intermediary",
        "discriminator": {
          "propertyName": "intermediary_type",
          "mapping": {
            "FIAT_US": "#/components/schemas/CounterPartyIntermediaryFIATUS",
            "FIAT_CA": "#/components/schemas/CounterPartyIntermediaryFIATCA",
            "FIAT_EU": "#/components/schemas/CounterPartyIntermediaryFIATEU",
            "FIAT_IN": "#/components/schemas/CounterPartyIntermediaryFIATIN",
            "FIAT_GB": "#/components/schemas/CounterPartyIntermediaryFIATGB",
            "FIAT_BS": "#/components/schemas/CounterPartyIntermediaryFIATBS",
            "FIAT_CN": "#/components/schemas/CounterPartyIntermediaryFIATCN",
            "FIAT_HK": "#/components/schemas/CounterPartyIntermediaryFIATHK",
            "FIAT_SG": "#/components/schemas/CounterPartyIntermediaryFIATSG",
            "FIAT_JP": "#/components/schemas/CounterPartyIntermediaryFIATJP",
            "FIAT_MY": "#/components/schemas/CounterPartyIntermediaryFIATMY",
            "FIAT_PA": "#/components/schemas/CounterPartyIntermediaryFIATPA"
          }
        }
      },
      "CounterPartyIntermediaryFIATBS": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATCA": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATCN": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATEU": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATGB": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATHK": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATIN": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATJP": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATMY": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATPA": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATSG": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type",
          "swift_bic"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number"
          }
        }
      },
      "CounterPartyIntermediaryFIATUS": {
        "required": [
          "asset_type_id",
          "institution_name",
          "intermediary_type"
        ],
        "type": "object",
        "properties": {
          "intermediary_type": {
            "type": "string",
            "description": "Intermediary type. This determines the asset type being sent.",
            "enum": [
              "FIAT_US",
              "FIAT_CA"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type to send to the intermediary.",
            "readOnly": true
          },
          "institution_name": {
            "type": "string",
            "description": "Intermediary Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          },
          "swift_bic": {
            "type": "string",
            "description": "Intermediary SWIFT/BIC Number. Either this or the routing number much be provided."
          },
          "routing_number": {
            "type": "string",
            "description": "Intermediary routing number. Either this or the SWIFT BIC must be provided."
          }
        }
      },
      "CounterPartyProfileCRYPTO": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the counterparty who is sending/receiving these funds (e.g. Anchorage Digital, Coinbase, John Doe etc)"
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty who is sending/receiving these funds (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counterparty whom is sending in funds. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATACCNO": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATBS": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATCA": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/AddressProfileStateRequired"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATCN": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATEU": {
        "required": [
          "address",
          "line_of_business",
          "name",
          "profile_type",
          "relationship_to_customer"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATGB": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/AddressProfileStateRequired"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATHK": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATIBAN": {
        "required": [
          "address",
          "line_of_business",
          "name",
          "profile_type",
          "relationship_to_customer"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATIN": {
        "required": [
          "address",
          "line_of_business",
          "name",
          "profile_type",
          "relationship_to_customer"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATJP": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATMY": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATPA": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATSG": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "CounterPartyProfileFIATUS": {
        "required": [
          "address",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "profile_type": {
            "type": "string",
            "description": "The profile type of the counterparty sending/receiving these funds. ",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the counterparty (individual or business name). Should match the name on the destination account if sending funds."
          },
          "email": {
            "type": "string",
            "description": "The email address of the counterparty who is sending/receiving these funds."
          },
          "telephone_number": {
            "type": "string",
            "description": "The Telephone Number in E.164 format of the counterparty who is sending/receiving these funds."
          },
          "tax_reference_number": {
            "type": "string",
            "description": "The tax reference number of the counterparty who is sending/receiving these funds. (Corporations - EIN, FEIN, TIN, etc. / Individuals = SSN, ITIN, SIN, National Insurance Number etc). For large value payments, providing this info can significantly streamline processing times."
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth of the counterparty if they are an individual.",
            "format": "date"
          },
          "address": {
            "$ref": "#/components/schemas/AddressProfileStateRequired"
          },
          "line_of_business": {
            "type": "string",
            "description": "Line of Business of the counterparty (if they are a business)",
            "enum": [
              "ARTS_AND_ANTIQUES",
              "AGRICULTURE",
              "AUDIT_VIDEO",
              "AUTOMOTIVE",
              "BANK_CREDIT_UNION",
              "BIOTECH_PHARMACEUTICAL",
              "BOOKSELLER",
              "CONSTRUCTION",
              "CASINOS_GAMBLING",
              "CLOTHING",
              "CONSULTING_PROFESSIONAL_SERVICES",
              "CRYPTOCURRENCY",
              "ECIGARETTES_TOBACCO",
              "ENERGY_CHEMICAL_FUEL",
              "ENGINEERING",
              "ADULT_ENTERTAINMENT",
              "FINANCIAL_AND_CORPORATE_SERVICES",
              "FOOD_AND_BEVERAGE",
              "FREIGHT_MARINE_SHIPPING_SERVICES",
              "GIFTWARE_SEASONAL",
              "GOVERNMENT_PUBLIC_SERVICES",
              "HIGH_TECH_SOFTWARE_TELECOMS",
              "HOSPITALITY",
              "HOUSEHOLD_GOOD_FURNITURE",
              "HUMAN_RESOURCE_SERVICES",
              "INDUSTRIAL_EQUIPMENT",
              "INFORMATION_TECHNOLOGY",
              "INSURANCE",
              "JEWELLERY_OPTICAL",
              "LAW",
              "MANUFACTURING",
              "MARKETING",
              "MEDIA_PUBLISHING",
              "MEDICAL_HEALTHCARE",
              "MEDICAL_TOURISM",
              "MINING",
              "MONEY_SERVICE_BUSINESS",
              "NON_PROFIT_CHARITY",
              "ONLINE_RETAIL",
              "PAYROLL",
              "PENSION",
              "PERSONAL_CARE_PRODUCTS",
              "PHOTOGRAPHY",
              "REAL_ESTATE",
              "RECREATIONAL_ACTIVITIES",
              "RELIGIOUS_ORGANISATION",
              "RETAIL",
              "SECURITY",
              "SPORTING_RECREATIONAL_PRODUCTS",
              "TRANSPORT",
              "UNIVERSITY_EDUCATION",
              "UTILITIES",
              "WASTE_MANAGEMENT",
              "WINE_LIQUOR",
              "TECHNICAL_SUPPORT",
              "OTHER"
            ]
          },
          "relationship_to_customer": {
            "type": "string",
            "description": "Relationship of the customer to the counterparty",
            "enum": [
              "SPOUSE",
              "EX_SPOUSE",
              "CHILDREN",
              "PARENT",
              "SIBLING",
              "RELATIVE",
              "SELF",
              "FRIEND",
              "BUSINESS_PARTNER",
              "CUSTOMER",
              "EMPLOYEE",
              "BRANCH_OFFICE",
              "SUBSIDIARY_COMPANY",
              "HOLDING_COMPANY",
              "SUPPLIER",
              "CREDITOR",
              "DEBTOR",
              "FRANCHISEE"
            ]
          }
        },
        "description": "Details of the counter party account holder. Required fields are determined by the combination of required rails. See the API Guides for a full documented breakdown of required fields."
      },
      "address": {
        "required": [
          "country_code"
        ],
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "The address of the counter party who is sending/receiving these funds."
      },
      "CounterPartyLinkingDetails": {
        "required": [
          "linking_provider"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "The provider for which linking instructions are required.",
            "enum": [
              "MX",
              "PLAID"
            ]
          }
        },
        "discriminator": {
          "propertyName": "linking_provider",
          "mapping": {
            "MX": "#/components/schemas/CounterPartyLinkingDetailsMX"
          }
        }
      },
      "CounterPartyLinkingDetailsMX": {
        "required": [
          "is_mobile_webview",
          "linking_provider",
          "mx_widget_url",
          "ui_message_webview_url_scheme"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "The provider for which linking instructions are required.",
            "enum": [
              "MX",
              "PLAID"
            ]
          },
          "is_mobile_webview": {
            "type": "boolean",
            "description": "Renders the widget in a mobile WebView. Executes URL updates in place of the JavaScript event postMessages."
          },
          "ui_message_webview_url_scheme": {
            "type": "string",
            "description": "Used as a redirect destination at the end of OAuth,"
          },
          "mx_widget_url": {
            "type": "string",
            "description": "Single use MX widget URLs for use in the front end. You must fetch a new widget URL each time you load the widget.",
            "readOnly": true
          }
        }
      },
      "CounterPartyLinkingConnect": {
        "required": [
          "linking_provider"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "The provider for which linking instructions are required.",
            "enum": [
              "MX",
              "PLAID"
            ]
          }
        },
        "discriminator": {
          "propertyName": "linking_provider",
          "mapping": {
            "MX": "#/components/schemas/CounterPartyLinkingConnectMX",
            "PLAID": "#/components/schemas/CounterPartyLinkingConnectPlaid"
          }
        }
      },
      "CounterPartyLinkingConnectMX": {
        "required": [
          "account_link_id",
          "linking_provider"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "The provider for which linking instructions are required.",
            "enum": [
              "MX",
              "PLAID"
            ]
          },
          "account_link_id": {
            "type": "string",
            "description": "Establish a connections to an account taken from the `/link/accounts` call"
          }
        }
      },
      "CounterPartyLinkingConnectPlaid": {
        "required": [
          "linking_provider",
          "processor_token"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "The provider for which linking instructions are required.",
            "enum": [
              "MX",
              "PLAID"
            ]
          },
          "processor_token": {
            "type": "string",
            "description": "Your Plaid processor token for this account"
          }
        }
      },
      "CounterPartyLinkingAccounts": {
        "required": [
          "linking_provider"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "Which provider was used when generating linking instructions",
            "enum": [
              "MX",
              "PLAID"
            ]
          }
        },
        "discriminator": {
          "propertyName": "linking_provider",
          "mapping": {
            "MX": "#/components/schemas/CounterPartyLinkingAccountsMX"
          }
        }
      },
      "CounterPartyLinkingAccountsMX": {
        "required": [
          "available_accounts",
          "linking_provider",
          "member_guid"
        ],
        "type": "object",
        "properties": {
          "linking_provider": {
            "type": "string",
            "description": "Which provider was used when generating linking instructions",
            "enum": [
              "MX",
              "PLAID"
            ]
          },
          "member_guid": {
            "type": "string",
            "description": "The `member_guid` from the `mx/connect/memberConnected` event generated in the UI by the mx widget"
          },
          "available_accounts": {
            "type": "array",
            "description": "The list of accounts that are available for linking. Use the connect operation to connect the desired account from this list with the counterparty",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/CounterPartyLinkingAccountsMXAbbrev"
            }
          }
        }
      },
      "CounterPartyLinkingAccountsMXAbbrev": {
        "required": [
          "account_link_id",
          "account_name",
          "account_number"
        ],
        "type": "object",
        "properties": {
          "account_link_id": {
            "type": "string",
            "description": "Unique ID for this account required when finalising the connection"
          },
          "account_name": {
            "type": "string",
            "description": "Account name"
          },
          "account_number": {
            "type": "string",
            "description": "Abbreviated account number (e.g. last 4 characters)"
          }
        },
        "description": "The list of accounts that are available for linking. Use the connect operation to connect the desired account from this list with the counterparty",
        "readOnly": true
      },
      "ApplicationBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          }
        }
      },
      "ResponseApplicationBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationBase"
          }
        }
      },
      "AccountOpen": {
        "required": [
          "account_id",
          "asset_type_id",
          "product_id"
        ],
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string",
            "description": "The identifier you wish to use to uniquely identify this account. The account id follows the [External Identifier](https://docs.rail.io/guides/externalidentifiers/) pattern. "
          },
          "product_id": {
            "type": "string",
            "description": "Select the type of account being opened. You can customise and/or create new product offerings by visiting the [Management Interface](https://management.rail.io)\n\nPre configured products that are available for use are \n- `DEPOSIT_BASIC`\n"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Select the asset type of the account being opened. Asset type selection is not open ended, it must be configured per product via the [Management Interface](https://management.rail.io). \n\nAsset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          }
        },
        "description": "Details of the account to open for the customer"
      },
      "ApplicationCorporation": {
        "required": [
          "account_to_open",
          "application_type",
          "customer_details",
          "customer_id",
          "id",
          "information_attested",
          "status",
          "terms_and_conditions_accepted"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the application",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "SUBMITTED",
              "PROCESSING",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "application_type": {
            "type": "string",
            "description": "Type of Application (Individual or CorporationApplication)",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "account_to_open": {
            "$ref": "#/components/schemas/AccountOpen"
          },
          "terms_and_conditions_accepted": {
            "type": "boolean",
            "description": "Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted."
          },
          "information_attested": {
            "type": "boolean",
            "description": "Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.",
            "default": false
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the [External Identifier](https://docs.rail.io/guides/externalidentifiers/) pattern. "
          },
          "customer_details": {
            "$ref": "#/components/schemas/CorporationApplication"
          }
        }
      },
      "ApplicationIndividual": {
        "required": [
          "account_to_open",
          "application_type",
          "customer_details",
          "customer_id",
          "id",
          "information_attested",
          "status",
          "terms_and_conditions_accepted"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the application",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "SUBMITTED",
              "PROCESSING",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "application_type": {
            "type": "string",
            "description": "Type of Application (Individual or CorporationApplication)",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "account_to_open": {
            "$ref": "#/components/schemas/AccountOpen"
          },
          "terms_and_conditions_accepted": {
            "type": "boolean",
            "description": "Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted."
          },
          "information_attested": {
            "type": "boolean",
            "description": "Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.",
            "default": false
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the [External Identifier](https://docs.rail.io/guides/externalidentifiers/) pattern. "
          },
          "customer_details": {
            "$ref": "#/components/schemas/IndividualApplication"
          }
        }
      },
      "CorporationApplication": {
        "required": [
          "registered_name"
        ],
        "type": "object",
        "properties": {
          "registered_name": {
            "type": "string",
            "description": "Corporate entity registered (legal) name"
          },
          "trading_name": {
            "type": "string",
            "description": "Trading/'Doing Business As' name (if different to registered name)"
          },
          "registered_number": {
            "type": "string",
            "description": "Government registered number of the corporate entity (e.g. what is defined on the Articles of Incorporation)"
          },
          "registered_number_country": {
            "type": "string",
            "description": "Two-letter country code indicating where the corporation is legally registered or incorporated. Related to registered_number field (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "corporate_tax_reference_number": {
            "type": "string",
            "description": "Government registered tax reference number. In many jurisdictions this is different to the `register_number`"
          },
          "corporate_tax_reference_number_country": {
            "type": "string",
            "description": "Two-letter country code of the country where the corporation is registered for tax purposes. Related to the corporate_tax_reference_number field (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "registered_address": {
            "$ref": "#/components/schemas/registered_address"
          },
          "physical_address": {
            "$ref": "#/components/schemas/physical_address"
          },
          "telephone_number": {
            "type": "string",
            "description": "Telephone Number in E.164 format"
          },
          "website_address": {
            "type": "string",
            "description": "Website URL"
          },
          "ip_address": {
            "type": "string",
            "description": "IP address from which the customer initiated the application request"
          },
          "state_of_incorporation": {
            "type": "string",
            "description": "State / Province / Riding of Incorporation (2 digit code)"
          },
          "country_of_incorporation": {
            "type": "string",
            "description": "Country of incorporation (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "corporate_entity_type": {
            "type": "string",
            "description": "Type of corporate entity",
            "enum": [
              "C_CORP_PRIVATE",
              "C_CORP_PUBLIC",
              "HNWI",
              "LLC",
              "LLP",
              "LP",
              "S_CORP",
              "SOLE_PROP",
              "TRUST",
              "NON_PROFIT",
              "OTHER"
            ]
          },
          "corporate_entity_type_description": {
            "type": "string",
            "description": "Description of legal structure where entity type is `OTHER`"
          },
          "email_address": {
            "type": "string",
            "description": "Business Email Address (for example support@acme.inc)"
          },
          "established_on": {
            "type": "string",
            "description": "Date the business was established following RFC3339 (YYYY-MM-DD)"
          },
          "naics": {
            "type": "string",
            "description": "NAICS Code"
          },
          "naics_description": {
            "type": "string",
            "description": "NAICS Description"
          },
          "individuals": {
            "type": "array",
            "description": "Beneficial Owners and Control Persons Associated to the corporation",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Individual"
            }
          },
          "investment_profile": {
            "$ref": "#/components/schemas/ProfileCorporateInvesting"
          },
          "kyc_profile": {
            "$ref": "#/components/schemas/ProfileCorporateKYC"
          }
        },
        "description": "Details of the corporation"
      },
      "Individual": {
        "required": [
          "first_name",
          "id",
          "individual_type",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the Individual",
            "readOnly": true
          },
          "individual_type": {
            "type": "array",
            "description": "Type of individual in the corporation",
            "items": {
              "type": "string",
              "description": "Type of individual in the corporation",
              "enum": [
                "OFFICER",
                "BENEFICIAL_OWNER",
                "CONTROL_PERSON",
                "AUTHORIZED_PERSON"
              ]
            }
          },
          "first_name": {
            "type": "string",
            "description": "First name"
          },
          "middle_name": {
            "type": "string",
            "description": "Middle Name(s) (if present)"
          },
          "last_name": {
            "type": "string",
            "description": "Last name"
          },
          "email_address": {
            "type": "string",
            "description": "Email Address"
          },
          "mailing_address": {
            "$ref": "#/components/schemas/mailing_address"
          },
          "telephone_number": {
            "type": "string",
            "description": "Telephone Number in E.164 format"
          },
          "tax_reference_number": {
            "type": "string",
            "description": "Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)"
          },
          "tax_reference_number_country": {
            "type": "string",
            "description": "Registered tax reference number country (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "passport_number": {
            "type": "string",
            "description": "Passport Number"
          },
          "nationality": {
            "type": "string",
            "description": "Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "citizenship": {
            "type": "array",
            "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth ",
            "format": "date"
          },
          "percentage_ownership": {
            "type": "integer",
            "description": "(Only where type is BENEFICIAL_OWNER) Percentage ownership of the corporation (0 to 100)",
            "format": "int32"
          },
          "title": {
            "type": "string",
            "description": "Example values CEO, COO, CFO, President, BenefitsAdministrationOfficer, CIO, VP, AVP, Treasurer, Secretary, Controller, Manager, Partner or Member."
          },
          "us_residency_status": {
            "type": "string",
            "description": "US Residency Status",
            "enum": [
              "US_CITIZEN",
              "RESIDENT_ALIEN",
              "NON_RESIDENT_ALIEN"
            ]
          }
        },
        "description": "Beneficial Owners and Control Persons Associated to the corporation",
        "readOnly": true
      },
      "IndividualApplication": {
        "required": [
          "first_name",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string",
            "description": "First name"
          },
          "middle_name": {
            "type": "string",
            "description": "Middle Name(s) (if present)"
          },
          "last_name": {
            "type": "string",
            "description": "Last name"
          },
          "email_address": {
            "type": "string",
            "description": "Email Address"
          },
          "mailing_address": {
            "$ref": "#/components/schemas/mailing_address"
          },
          "telephone_number": {
            "type": "string",
            "description": "Telephone Number in E.164 format"
          },
          "tax_reference_number": {
            "type": "string",
            "description": "Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)"
          },
          "passport_number": {
            "type": "string",
            "description": "Passport Number"
          },
          "nationality": {
            "type": "string",
            "description": "Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "citizenship": {
            "type": "array",
            "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth ",
            "format": "date"
          },
          "ip_address": {
            "type": "string",
            "description": "IP address from which customer initiated the application request"
          },
          "tax_reference_number_country": {
            "type": "string",
            "description": "Registered tax reference number (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "us_residency_status": {
            "type": "string",
            "description": "US Residency Status",
            "enum": [
              "US_CITIZEN",
              "RESIDENT_ALIEN",
              "NON_RESIDENT_ALIEN"
            ]
          },
          "employment_status": {
            "type": "string",
            "description": "Employment Status",
            "enum": [
              "EMPLOYEE",
              "SELF_EMPLOYED",
              "RETIRED",
              "UNEMPLOYED",
              "OTHER"
            ]
          },
          "employment_description": {
            "type": "string",
            "description": "Employment (job) description."
          },
          "employer_name": {
            "type": "string",
            "description": "Employer name"
          },
          "occupation": {
            "type": "string",
            "description": "Occupation"
          },
          "investment_profile": {
            "$ref": "#/components/schemas/ProfileIndividualInvesting"
          },
          "kyc_profile": {
            "$ref": "#/components/schemas/ProfileIndividualKYC"
          }
        },
        "description": "Details of the applying individual"
      },
      "ProfileCorporateInvesting": {
        "type": "object",
        "properties": {
          "primary_source_of_funds": {
            "type": "string",
            "enum": [
              "EMPLOYMENT",
              "SAVINGS",
              "WINNINGS",
              "MARITAL",
              "REAL_ESTATE",
              "TRUST",
              "INVESTMENT",
              "OTHER",
              "COMPANY",
              "COMPANY_CAPITAL",
              "LOAN",
              "PRIVATE_CAPITAL",
              "GRANT"
            ]
          },
          "total_investable_assets": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "total_assets": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "asset_allocation_to_crypto": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "investment_experience_crypto": {
            "type": "string",
            "enum": [
              "LITTLE",
              "MODERATE",
              "SIGNIFICANT"
            ]
          },
          "investment_strategy_crypto": {
            "type": "string",
            "enum": [
              "LOW_RISK",
              "MEDIUM_RISK",
              "HIGH_RISK",
              "OTHER"
            ]
          },
          "initial_deposit_source": {
            "type": "string",
            "enum": [
              "DEPOSIT",
              "WIRE"
            ]
          },
          "initial_deposit_source_crypto_details": {
            "type": "string"
          },
          "initial_deposit_source_fiat_details": {
            "type": "string"
          },
          "ongoing_deposit_source": {
            "type": "string",
            "enum": [
              "DEPOSIT",
              "WIRE"
            ]
          },
          "frequency_of_crypto_transactions": {
            "type": "string",
            "enum": [
              "DAILY",
              "WEEKLY",
              "BIWEEKLY",
              "MONTHLY",
              "QUARTERLY",
              "SEMI_ANNUALLY"
            ]
          },
          "crypto_investment_plans": {
            "type": "string",
            "enum": [
              "CUSTODY",
              "STAKING",
              "TRADING",
              "LENDING",
              "BORROWING"
            ]
          },
          "investment_proceeds_use": {
            "type": "string"
          },
          "expected_crypto_assets": {
            "type": "string"
          },
          "perform_transfers_with_unhosted_wallets": {
            "type": "boolean"
          },
          "known_unhosted_wallet_addresses": {
            "type": "string"
          },
          "trades_per_month": {
            "type": "string",
            "enum": [
              "UPTO_20",
              "TWENTYONE_TO_30",
              "THIRTYONE_TO_100",
              "ONEHUNDREDANDONE_TO_200",
              "TWOHUNDREDANDONE_TO_400",
              "MORE_THAN_400"
            ]
          },
          "usd_value_of_crypto": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "usd_value_of_fiat": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "frequency_of_transactions": {
            "type": "string",
            "enum": [
              "DAILY",
              "WEEKLY",
              "BIWEEKLY",
              "MONTHLY",
              "QUARTERLY",
              "SEMI_ANNUALLY"
            ]
          },
          "monthly_crypto_investment_deposit": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_investment_deposit": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_crypto_deposits": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_deposits": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_crypto_investment_withdrawal": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_investment_withdrawal": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_crypto_withdrawals": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_withdrawals": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "trade_internationally": {
            "type": "boolean"
          },
          "trade_jurisdictions": {
            "type": "array",
            "description": "To which jurisdictions will the company trade with (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "To which jurisdictions will the company trade with (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          }
        },
        "description": "Investment Profile of the corporation"
      },
      "ProfileCorporateKYC": {
        "type": "object",
        "properties": {
          "primary_business": {
            "type": "string",
            "enum": [
              "ACCOUNTANCY",
              "ADULT_ENTERTAINMENT",
              "ADULT_PRODUCTS",
              "ADVERTISING_MARKETING_PR",
              "ADVISOR",
              "AEROSPACE",
              "AGRICULTURE",
              "ALCOHOL",
              "ARCHITECTURE",
              "ARTS_ANTIQUES",
              "ASSET_WEALTH_MANAGEMENT",
              "ATM",
              "AUTOMOBILE_CAR_PARTS",
              "AUTOMOBILE_LUXURY",
              "BANK_FOREIGN",
              "BANK_US",
              "BARS_RESTAURANTS",
              "BIO_SCIENCE",
              "BOOKS_MAGAZINES_NEWSPAPERS",
              "BROADCASTERS_RADIO_TV",
              "BROKER",
              "BUILDING_MATERIALS",
              "CALL_CENTER",
              "CASINO_GAMBLING",
              "CHARITY",
              "CHEMICAL_MANUFACTURING",
              "CLOTHING_TEXTILES",
              "COMMODITIES",
              "COMPANY_FORMATION",
              "CONSTRUCTION_TRADES",
              "CRYPTO_MSB_FOREIGN",
              "CRYPTO_MSB_US",
              "CYBER_SECURITY",
              "DATA_STORAGE_PROCESSING",
              "DEFI_EXCHANGE",
              "ECOMMERCE",
              "ELECTRONICS_MOBILE_PHONES",
              "ENGINEERING",
              "EVENT_PLANNING",
              "FITNESS_EQUIPMENT",
              "FOOD_BEVERAGE",
              "FOUNDATION",
              "FREIGHT_LOGISTICS_SHIPPING",
              "GOVERNMENT_FOREIGN",
              "GOVERNMENT_US",
              "HEALTH_SUPPLEMENTS",
              "HEAVY_EQUIPMENT",
              "HISTORICAL_CULTURAL_ARTIFACTS",
              "HNWI",
              "HOSPITALITY",
              "HOSPITALS_CARE_FACILITIES",
              "IMPORT_EXPORT",
              "INDUSTRIAL_EQUIPMENT",
              "INFLUENCER_SOCIAL_MEDIA",
              "INSURANCE",
              "INSURANCE_INSURANCE_COMPANIES",
              "INVESTMENT_FIRMS",
              "IT_MANAGED_SERVICES",
              "LEGAL_SERVICES",
              "LOAN",
              "LOGGING_TIMBER_PAPER_MILLS",
              "LUXURY_GOODS",
              "LUXURY_GOODS_BROKER",
              "MANAGEMENT_CONSULTING",
              "MINER",
              "MINING_EXTRACTION",
              "MULTILEVEL_MARKETING",
              "MUSIC_PRODUCTION",
              "NFT",
              "NON_BANK_CUSTODIAN",
              "NON_CRYPTO_MSB_FOREIGN",
              "NON_CRYPTO_MSB_US",
              "OIL_GAS",
              "PAWN_BROKERS",
              "PAYMENT_PROCESSOR",
              "PAYROLL",
              "PENSION",
              "POLITICAL_PARTY_GROUP",
              "POOLED_INVESTMENT",
              "PRECIOUS_METALS",
              "PRIVATE_EQUITY",
              "PRIVATE_JET_CHARTER",
              "PROP_TRADING",
              "PUBLIC",
              "REAL_ESTATE_INVESTMENT",
              "RETAILER_DURABLE",
              "RETAILER_NON_DURABLE",
              "SCHOOL_UNIVERSITY",
              "SECURITY",
              "SOFTWARE",
              "SOFTWARE_BLOCKCHAIN_CRYPTO",
              "SPORTING_PROFESSIONAL_CLUB",
              "SPV",
              "STATE_FOREIGN",
              "STATE_US",
              "SUPRANATIONAL_BODY",
              "TAX_ADVISORS",
              "TAXI_PRIVATE_TRANSPORT",
              "TELECOMMUNICATIONS",
              "TOBACCO",
              "TOKEN_PROJECT",
              "TRAVEL",
              "TRUST_CORP",
              "TRUST_PERSONAL",
              "UTILITIES_WATER_GAS_ELECTRIC",
              "VENTURE_CAPITAL",
              "VIDEO_GAMES",
              "WASTE_MANAGEMENT_RECYCLING",
              "WEAPONS_MANUFACTURER",
              "WEAPONS_MILITARY_SERVICES",
              "WHV",
              "WHOLESALER_DURABLE",
              "WHOLESALER_NON_DURABLE"
            ]
          },
          "description_of_business_nature": {
            "type": "string"
          },
          "is_charitable": {
            "type": "boolean"
          },
          "business_jurisdictions": {
            "type": "array",
            "description": "In what countries the corporation does business in (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "In what countries the corporation does business in (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "funds_send_receive_jurisdictions": {
            "type": "array",
            "description": "In what countries the corporation sends or receives funds (2 Digit ISO3166-1 Alpha-2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "In what countries the corporation sends or receives funds (2 Digit ISO3166-1 Alpha-2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "has_complex_ownership": {
            "type": "boolean",
            "description": "Identifies whether the business has a complex ownership structure. In instances where the ownership structure of a business customer has 3 or more layers of ownership, this field should be set to true. Meaning one or more ultimate beneficial owner of the business is another corporation."
          },
          "new_york_office": {
            "type": "boolean"
          },
          "engage_in_activities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "NONE",
                "ADULT_ENTERTAINMENT",
                "DRUGS",
                "FIREARMS",
                "GAMBLING",
                "MARIJUANA",
                "TUMBLING"
              ]
            }
          },
          "regulated_status": {
            "type": "string",
            "enum": [
              "REGULATED",
              "REGISTERED",
              "LICENSED",
              "NONE",
              "NOT_REQUIRED"
            ]
          },
          "regulation_agency": {
            "type": "string"
          },
          "regulation_agency_regulation_number": {
            "type": "string"
          },
          "control_exemption_reason": {
            "type": "string",
            "enum": [
              "REGULATED",
              "PUBLICLY_TRADED",
              "PUBLIC_SUBSIDIARY",
              "PUBLIC_ACCOUNTING",
              "INSURANCE",
              "GOVERNMENT_AGENCY",
              "BANK_HOLDING",
              "SAVINGS_LOAN",
              "FMU",
              "FOREIGN_PRIVATE_BANK",
              "FOREIGN_INSTITUTION",
              "ISSUER",
              "INVESTMENT",
              "COMMODITIES",
              "POOLED_INVESTMENT",
              "NON_GOVERNMENT_SUBDIVISION",
              "NON_ENTITY",
              "NONE"
            ]
          },
          "vendors_and_counterparties": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "SELF",
                "MERCHANTS_SUPPLIERS",
                "CUSTOMERS",
                "EMPLOYEES",
                "CONTRACTORS",
                "FRIENDS",
                "FAMILY"
              ]
            }
          }
        },
        "description": "KYC Profile of the corporation"
      },
      "ProfileIndividualInvesting": {
        "type": "object",
        "properties": {
          "primary_source_of_funds": {
            "type": "string",
            "enum": [
              "EMPLOYMENT",
              "SAVINGS",
              "WINNINGS",
              "MARITAL",
              "REAL_ESTATE",
              "TRUST",
              "INVESTMENT",
              "OTHER",
              "COMPANY",
              "COMPANY_CAPITAL",
              "LOAN",
              "PRIVATE_CAPITAL",
              "GRANT"
            ]
          },
          "primary_source_of_funds_description": {
            "type": "string"
          },
          "total_assets": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "usd_value_of_fiat": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "monthly_deposits": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_withdrawals": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_investment_deposit": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_investment_withdrawal": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "usd_value_of_crypto": {
            "type": "string",
            "enum": [
              "UPTO_10K",
              "TEN_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "ONE_TO_10M",
              "TEN_TO_50M",
              "FIFTY_TO_250M",
              "MORE_THAN_250M"
            ]
          },
          "monthly_crypto_deposits": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_crypto_withdrawals": {
            "type": "string",
            "enum": [
              "UPTO_5",
              "FIVE_TO_10",
              "TEN_TO_25",
              "MORE_THAN_25"
            ]
          },
          "monthly_crypto_investment_deposit": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          },
          "monthly_crypto_investment_withdrawal": {
            "type": "string",
            "enum": [
              "UPTO_1K",
              "ONE_TO_100K",
              "ONEHUNDREDK_TO_1M",
              "MILLION_TO_5M",
              "MORE_THAN_5M"
            ]
          }
        },
        "description": "Investment Profile of the Individual"
      },
      "ProfileIndividualKYC": {
        "type": "object",
        "properties": {
          "funds_send_receive_jurisdictions": {
            "type": "array",
            "description": "In what countries the individual sends or receives funds (2 Digit ISO3166-1 Alpha-2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "In what countries the individual sends or receives funds (2 Digit ISO3166-1 Alpha-2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "business_jurisdictions": {
            "type": "array",
            "description": "In what countries the individual does business (2-Digit ISO 3166-1 Alpha-2 Format – https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "In what countries the individual does business (2-Digit ISO 3166-1 Alpha-2 Format – https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "engage_in_activities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "NONE",
                "ADULT_ENTERTAINMENT",
                "DRUGS",
                "FIREARMS",
                "GAMBLING",
                "MARIJUANA",
                "TUMBLING"
              ]
            }
          },
          "vendors_and_counterparties": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "SELF",
                "MERCHANTS_SUPPLIERS",
                "CUSTOMERS",
                "EMPLOYEES",
                "CONTRACTORS",
                "FRIENDS",
                "FAMILY"
              ]
            }
          }
        },
        "description": "KYC Profile of the Individual"
      },
      "RequestApplication": {
        "required": [
          "application_type"
        ],
        "type": "object",
        "properties": {
          "application_type": {
            "type": "string"
          }
        },
        "discriminator": {
          "propertyName": "application_type",
          "mapping": {
            "INDIVIDUAL": "#/components/schemas/ApplicationIndividual",
            "CORPORATION": "#/components/schemas/ApplicationCorporation"
          }
        }
      },
      "mailing_address": {
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Mailing Address"
      },
      "physical_address": {
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Physical Address if different to registered address"
      },
      "registered_address": {
        "type": "object",
        "properties": {
          "unit_number": {
            "type": "string",
            "description": "Unit Number"
          },
          "address_line1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address_line2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address_line3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province (2 Digit subdivision component of the ISO 3166-2 code, which consists of the last two characters. https://en.wikipedia.org/wiki/ISO_3166-2"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country_code": {
            "type": "string",
            "description": "Country Code (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          }
        },
        "description": "Registered / head office address"
      },
      "IndividualBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the Individual",
            "readOnly": true
          }
        }
      },
      "ResponseIndividualBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/IndividualBase"
          }
        }
      },
      "RequestIndividual": {
        "required": [
          "first_name",
          "id",
          "individual_type",
          "last_name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the Individual",
            "readOnly": true
          },
          "individual_type": {
            "type": "array",
            "description": "Type of individual in the corporation",
            "items": {
              "type": "string",
              "description": "Type of individual in the corporation",
              "enum": [
                "OFFICER",
                "BENEFICIAL_OWNER",
                "CONTROL_PERSON",
                "AUTHORIZED_PERSON"
              ]
            }
          },
          "first_name": {
            "type": "string",
            "description": "First name"
          },
          "middle_name": {
            "type": "string",
            "description": "Middle Name(s) (if present)"
          },
          "last_name": {
            "type": "string",
            "description": "Last name"
          },
          "email_address": {
            "type": "string",
            "description": "Email Address"
          },
          "mailing_address": {
            "$ref": "#/components/schemas/mailing_address"
          },
          "telephone_number": {
            "type": "string",
            "description": "Telephone Number in E.164 format"
          },
          "tax_reference_number": {
            "type": "string",
            "description": "Tax reference number of the country (SSN, ITIN, SIN, National Insurance Number etc)"
          },
          "tax_reference_number_country": {
            "type": "string",
            "description": "Registered tax reference number country (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "passport_number": {
            "type": "string",
            "description": "Passport Number"
          },
          "nationality": {
            "type": "string",
            "description": "Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
          },
          "citizenship": {
            "type": "array",
            "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
            "items": {
              "type": "string",
              "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
            }
          },
          "date_of_birth": {
            "type": "string",
            "description": "RFC3339 (YYYY-MM-DD) Date of Birth ",
            "format": "date"
          },
          "percentage_ownership": {
            "type": "integer",
            "description": "(Only where type is BENEFICIAL_OWNER) Percentage ownership of the corporation (0 to 100)",
            "format": "int32"
          },
          "title": {
            "type": "string",
            "description": "Example values CEO, COO, CFO, President, BenefitsAdministrationOfficer, CIO, VP, AVP, Treasurer, Secretary, Controller, Manager, Partner or Member."
          },
          "us_residency_status": {
            "type": "string",
            "description": "US Residency Status",
            "enum": [
              "US_CITIZEN",
              "RESIDENT_ALIEN",
              "NON_RESIDENT_ALIEN"
            ]
          }
        }
      },
      "ApplicationAccessCode": {
        "required": [
          "access_code",
          "expiry",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          },
          "access_code": {
            "type": "string",
            "description": "Access code for use with the rail Customer Onboarding SDK",
            "readOnly": true
          },
          "expiry": {
            "type": "string",
            "description": "Date time the access code will expire. At this point a new access code must be generated. Visit the [Management Interface](https://management.rail.io) to configure expiry settings.",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "ResponseApplicationAccessCode": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationAccessCode"
          }
        }
      },
      "AccountBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the account - defined by the Client during account open"
          }
        }
      },
      "ResponseAccountBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AccountBase"
          }
        }
      },
      "RequestAccountOpen": {
        "required": [
          "account_to_open",
          "customer_id"
        ],
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "string",
            "description": "Customer ID of the customer for whom the account is being opened (see /customers)"
          },
          "account_to_open": {
            "$ref": "#/components/schemas/AccountOpen"
          }
        }
      },
      "CustomerBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the customer"
          }
        }
      },
      "ResponseCustomerBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CustomerBase"
          }
        }
      },
      "PatchCustomer": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Customer Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestCustomerPatch": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchCustomer"
            }
          },
          "updated_by": {
            "type": "string",
            "description": "Description or reference of the system/person who requested the change"
          },
          "reason": {
            "type": "string",
            "description": "String representing the reason for the change. "
          }
        }
      },
      "PatchGeneric": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestPatchGeneric": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchGeneric"
            }
          }
        }
      },
      "PatchCounterparty": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Counterparty Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestCounterpartyPatch": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchCounterparty"
            }
          },
          "updated_by": {
            "type": "string",
            "description": "Description or reference of the system/person who requested the change"
          },
          "reason": {
            "type": "string",
            "description": "String representing the reason for the change. "
          }
        }
      },
      "PatchApplication": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Application Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestApplicationPatch": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchApplication"
            }
          }
        }
      },
      "PatchIndividual": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestIndividualPatch": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchIndividual"
            }
          }
        }
      },
      "PatchAccount": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Account Field To Be Patched"
          },
          "value": {
            "type": "string",
            "description": "New value"
          }
        },
        "description": "Follow standard patch guidance"
      },
      "RequestAccountPatch": {
        "type": "object",
        "properties": {
          "updates": {
            "type": "array",
            "description": "Follow standard patch guidance",
            "items": {
              "$ref": "#/components/schemas/PatchAccount"
            }
          },
          "updated_by": {
            "type": "string",
            "description": "Description or reference of the system/person who requested the change"
          },
          "reason": {
            "type": "string",
            "description": "String representing the reason for the change. "
          }
        }
      },
      "WITHDRAWAL_CRYPTO": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalCrypto"
          }
        }
      },
      "WITHDRAWAL_ACH": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalACH"
          }
        }
      },
      "WITHDRAWAL_FEDWIRE": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalFedwire"
          }
        }
      },
      "WITHDRAWAL_SWIFT": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalSwift"
          }
        }
      },
      "WITHDRAWAL_SEPACT": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalSepaCT"
          }
        }
      },
      "ResponseWithdrawalStatus": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/WithdrawalState"
          }
        }
      },
      "WithdrawalDocumentError": {
        "required": [
          "document",
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the document",
            "readOnly": true,
            "example": "905666e7-2d5b-4ac4-bd96-e02675fc678f"
          },
          "status": {
            "type": "string",
            "description": "Status of the document upload",
            "enum": [
              "MISSING",
              "SUBMITTED",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "description": {
            "type": "string",
            "description": "Additional supporting error details",
            "readOnly": true,
            "example": "Please upload an invoice"
          },
          "document": {
            "type": "string",
            "description": "Document Type the error occurred on",
            "readOnly": true,
            "enum": [
              "INVOICE"
            ]
          }
        },
        "description": "List of document errors associated with the withdrawal",
        "readOnly": true
      },
      "WithdrawalState": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the withdrawal request",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the withdrawal. \n* `REQUESTED` - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. \n* `ACCEPTED` - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled.  \n* `EXPIRED` - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state.  \n* `CANCELLED` - Withdrawal request was cancelled. Only available prior to acceptance. The  request cannot be replayed from this state.  \n* `CANCELLING` - Withdrawal request is being cancelled. \n* `EXECUTED` -  Withdrawal request has been executed, it is completed with all ledger entries performed.  \n* `REJECTED` - Withdrawal request was rejected and cannot be executed.  \n\n",
            "readOnly": true,
            "enum": [
              "REQUESTED",
              "REJECTED",
              "EXPIRED",
              "ACCEPTED",
              "EXECUTED",
              "CANCELLED",
              "CANCELLING"
            ]
          },
          "document_errors": {
            "type": "array",
            "description": "List of document errors associated with the withdrawal",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/WithdrawalDocumentError"
            }
          }
        }
      },
      "Page": {
        "required": [
          "first",
          "last",
          "next",
          "prev",
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "endpoint to the current page of results"
          },
          "first": {
            "type": "string",
            "description": "endpoint to the first page of results"
          },
          "prev": {
            "type": "string",
            "description": "endpoint to the previous page of results"
          },
          "next": {
            "type": "string",
            "description": "endpoint to the next page of results"
          },
          "last": {
            "type": "string",
            "description": "endpoint to the last page of results"
          }
        },
        "description": "See the [pagination](https://docs.rail.io/guides/pagination/) section for additional details on the generic pagination approach."
      },
      "RailInformation": {
        "required": [
          "rail"
        ],
        "type": "object",
        "properties": {
          "rail": {
            "type": "string",
            "description": "The rail on which this transaction arrived."
          },
          "reference": {
            "type": "string",
            "description": "Rail-specific reference if one exists (e.g., blockchain hash, Fedwire ID, etc.)"
          },
          "memo": {
            "type": "string",
            "description": "Any reference provided by the originator, typically used on FIAT rails (e.g., transaction memo)."
          }
        },
        "description": "Where the type of transaction is `TRANSFER_IN`, the available details of the originator of the transaction"
      },
      "ResponseTransactions": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/TransactionList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "Transaction": {
        "required": [
          "id",
          "transaction_date",
          "transaction_status",
          "transaction_type",
          "value"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the transaction"
          },
          "value": {
            "type": "number",
            "description": "Value of the transaction in the underlying account currency"
          },
          "transaction_date": {
            "type": "string",
            "description": "Date time the transaction was performed",
            "format": "date-time"
          },
          "transaction_posted_date": {
            "type": "string",
            "description": "Date time the transaction was posted",
            "format": "date-time"
          },
          "transaction_status": {
            "type": "string",
            "description": "Status of transaction \n* `AUTHORIZED` - Treat as a temporary hold. This transaction impacts the account available balance but does not impact the current balance. Can and should be cancelled and replaced by a pending/posted pair.  \n* `PENDING` - Transaction waiting final confirmation. This transaction impacts the account available balance but does not impact the current balance. Cannot be cancelled as the underlying transaction is in flight.  \n* `POSTED` - Transaction is final. Both the available balance and current balance are impacted. Cannot be reversed. \n* `CANCELLED` - Transaction is no longer valid. Reverse any impacts to available balance and current balance. \n\n",
            "enum": [
              "AUTHORIZED",
              "PENDING",
              "POSTED",
              "CANCELLED"
            ]
          },
          "transaction_type": {
            "type": "string",
            "description": "Transaction type \n* `TRANSFER_IN` - External deposit of crypto funds into an account. \n* `TRANSFER_OUT` - Withdrawal of crypto funds from an account to an external location .  \n* `FIAT_TRANSFER_IN` - External deposit of FIAT funds into an account. \n* `FIAT_TRANSFER_OUT` - Withdrawal of FIAT funds from an account to an external location .  \n* `FIAT_TRANSFER_IN_RETURN` - Clawback of a FIAT deposit (e.g. due to bankiing error). \n* `FIAT_TRANSFER_OUT_RETURN` - Return of a FIAT withdrawal (e.g. due to the destination account being closed)  \n* `DEBIT_CORRECTION` - Debit account adjustment.  \n* `CREDIT_CORRECTION` - Credit account adjustment.  \n* `TRADE` -  Currency exchange transaction (applies to both the debit on the source account or credit on the destination account).  \n* `FEE` -  Fee deduction.  \n* `INTERNAL_TRANSFER` - Book (internal) movement of funds between account.  \n\n",
            "enum": [
              "TRANSFER_IN",
              "TRANSFER_OUT",
              "FIAT_TRANSFER_IN",
              "FIAT_TRANSFER_OUT",
              "FIAT_TRANSFER_IN_RETURN",
              "FIAT_TRANSFER_OUT_RETURN",
              "FEE",
              "DEBIT_CORRECTION",
              "CREDIT_CORRECTION",
              "TRADE",
              "INTERNAL_TRANSFER"
            ]
          },
          "category_type": {
            "type": "string",
            "description": "If this transaction related to a core platform feature \n* `DEPOSIT` - When this transaction was a result of a deposit.  \n* `EXCHANGE` - When this transaction was a result of an [exchange](#tag/Exchanges). \n* `TRANSFER` - When this transaction was a result of a [transfer](#tag/Transfers).  \n* `WITHDRAWAL` - When this transaction was a result of a [withdrawal](#tag/Withdrawals). \n\n",
            "enum": [
              "ADJUSTMENT",
              "DEPOSIT",
              "EXCHANGE",
              "TRANSFER",
              "WITHDRAWAL"
            ]
          },
          "category_id": {
            "type": "string",
            "description": "Where the `category_type` is present, this identifier allows you to lookup the category details using the standard APIs. For example, where a category_type is `TRANSFER` and the category_id is `abc-123`, you can lookup the original transfer that this transaction relates to using ```GET /transfers/abc-123```   \n"
          },
          "description": {
            "type": "string",
            "description": "Description"
          },
          "originator": {
            "$ref": "#/components/schemas/TransactionOriginator"
          },
          "rail_information": {
            "$ref": "#/components/schemas/RailInformation"
          }
        },
        "description": "Transaction List"
      },
      "TransactionList": {
        "required": [
          "transactions"
        ],
        "type": "object",
        "properties": {
          "transactions": {
            "type": "array",
            "description": "Transaction List",
            "items": {
              "$ref": "#/components/schemas/Transaction"
            }
          }
        }
      },
      "TransactionOriginator": {
        "required": [
          "originator_type"
        ],
        "type": "object",
        "properties": {
          "originator_type": {
            "type": "string",
            "description": "Type of transaction originator",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "rail_reference": {
            "type": "string",
            "description": "Rail specific reference if one exists (e.g. blockchain hash, fedwire ID etc)"
          },
          "rail_originator_memo": {
            "type": "string",
            "description": "Any reference provided by the originator, typically only used on FIAT rails (e.g. transaction Memo etc)."
          }
        },
        "description": "Where the type of transaction is `TRANSFER_IN`, the available details of the originator of the transaction",
        "discriminator": {
          "propertyName": "originator_type",
          "mapping": {
            "FIAT_CA": "#/components/schemas/TransactionOriginatorFIATCA",
            "FIAT_US": "#/components/schemas/TransactionOriginatorFIATUS",
            "CRYPTO": "#/components/schemas/TransactionOriginatorCRYPTO"
          }
        }
      },
      "TransactionOriginatorAccountCRYPTO": {
        "type": "object",
        "properties": {
          "blockchain_address": {
            "type": "string",
            "description": "Originator Blockchain address"
          },
          "wallet_type": {
            "type": "string",
            "description": "Originator wallet type (e.g. Custodian, Private Wallet etc)",
            "enum": [
              "INSTITUTION",
              "OTHER",
              "UNKNOWN"
            ]
          },
          "institution_name": {
            "type": "string",
            "description": "Originator Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Available details of the originator wallet/address"
      },
      "TransactionOriginatorAccountFIATCA": {
        "required": [
          "institution_number",
          "transit_number"
        ],
        "type": "object",
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Originator account number"
          },
          "institution_number": {
            "type": "string",
            "description": "Originator institution number"
          },
          "transit_number": {
            "type": "string",
            "description": "Originator transit number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Originator SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Originator Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Available details of the originator account"
      },
      "TransactionOriginatorAccountFIATUS": {
        "type": "object",
        "properties": {
          "account_number": {
            "type": "string",
            "description": "Originator account number"
          },
          "type": {
            "type": "string",
            "description": "Originator account type.",
            "enum": [
              "CHECKING",
              "SAVING"
            ]
          },
          "routing_number": {
            "type": "string",
            "description": "Originator routing number"
          },
          "swift_bic": {
            "type": "string",
            "description": "Originator SWIFT/BIC Number"
          },
          "institution_name": {
            "type": "string",
            "description": "Originator Institution Name (e.g. Bank of America)"
          },
          "institution_address": {
            "$ref": "#/components/schemas/institution_address"
          }
        },
        "description": "Available details of the originator account"
      },
      "TransactionOriginatorCRYPTO": {
        "required": [
          "originator_type",
          "profile",
          "rail",
          "wallet_information"
        ],
        "type": "object",
        "properties": {
          "originator_type": {
            "type": "string",
            "description": "Type of transaction originator",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "rail_reference": {
            "type": "string",
            "description": "Rail specific reference if one exists (e.g. blockchain hash, fedwire ID etc)"
          },
          "rail_originator_memo": {
            "type": "string",
            "description": "Any reference provided by the originator, typically only used on FIAT rails (e.g. transaction Memo etc)."
          },
          "rail": {
            "type": "string",
            "description": "The rail on which this transaction arrived. ",
            "enum": [
              "CRYPTO"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/TransactionOriginatorProfileCRYPTO"
          },
          "wallet_information": {
            "$ref": "#/components/schemas/TransactionOriginatorAccountCRYPTO"
          }
        }
      },
      "TransactionOriginatorFIATCA": {
        "required": [
          "account_information",
          "originator_type",
          "profile",
          "rail"
        ],
        "type": "object",
        "properties": {
          "originator_type": {
            "type": "string",
            "description": "Type of transaction originator",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "rail_reference": {
            "type": "string",
            "description": "Rail specific reference if one exists (e.g. blockchain hash, fedwire ID etc)"
          },
          "rail_originator_memo": {
            "type": "string",
            "description": "Any reference provided by the originator, typically only used on FIAT rails (e.g. transaction Memo etc)."
          },
          "rail": {
            "type": "string",
            "description": "The rail on which this transaction arrived. ",
            "enum": [
              "EFT",
              "SWIFT"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/TransactionOriginatorProfileFIATCA"
          },
          "account_information": {
            "$ref": "#/components/schemas/TransactionOriginatorAccountFIATCA"
          }
        }
      },
      "TransactionOriginatorFIATUS": {
        "required": [
          "account_information",
          "originator_type",
          "profile",
          "rail"
        ],
        "type": "object",
        "properties": {
          "originator_type": {
            "type": "string",
            "description": "Type of transaction originator",
            "enum": [
              "FIAT_US",
              "FIAT_US_LINKED",
              "FIAT_CA",
              "FIAT_CA_LINKED",
              "CRYPTO"
            ]
          },
          "rail_reference": {
            "type": "string",
            "description": "Rail specific reference if one exists (e.g. blockchain hash, fedwire ID etc)"
          },
          "rail_originator_memo": {
            "type": "string",
            "description": "Any reference provided by the originator, typically only used on FIAT rails (e.g. transaction Memo etc)."
          },
          "rail": {
            "type": "string",
            "description": "The rail on which this transaction arrived. ",
            "enum": [
              "ACH",
              "FEDWIRE",
              "SWIFT"
            ]
          },
          "profile": {
            "$ref": "#/components/schemas/TransactionOriginatorProfileFIATUS"
          },
          "account_information": {
            "$ref": "#/components/schemas/TransactionOriginatorAccountFIATUS"
          }
        }
      },
      "TransactionOriginatorProfileCRYPTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the counter party who is sending/receiving these funds (e.g. Anchorage Digital, Coinbase, or entity name etc)"
          }
        },
        "description": "Available details of the originator wallet/address owner"
      },
      "TransactionOriginatorProfileFIATCA": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the originator (individual or business name)."
          }
        },
        "description": "Available details of the originator account owner"
      },
      "TransactionOriginatorProfileFIATUS": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the originator (individual or business name)."
          }
        },
        "description": "Available details of the originator account owner"
      },
      "ResponseTransactionDetails": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/TransactionDetails"
          }
        }
      },
      "TransactionDetails": {
        "required": [
          "id",
          "transaction_date",
          "transaction_status",
          "transaction_type",
          "value"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the transaction"
          },
          "value": {
            "type": "number",
            "description": "Value of the transaction in the underlying account currency"
          },
          "transaction_date": {
            "type": "string",
            "description": "Date time the transaction was performed",
            "format": "date-time"
          },
          "transaction_posted_date": {
            "type": "string",
            "description": "Date time the transaction was posted",
            "format": "date-time"
          },
          "transaction_status": {
            "type": "string",
            "description": "Status of transaction \n* `AUTHORIZED` - Treat as a temporary hold. This transaction impacts the account available balance but does not impact the current balance. Can and should be cancelled and replaced by a pending/posted pair.  \n* `PENDING` - Transaction waiting final confirmation. This transaction impacts the account available balance but does not impact the current balance. Cannot be cancelled as the underlying transaction is in flight.  \n* `POSTED` - Transaction is final. Both the available balance and current balance are impacted. Cannot be reversed. \n* `CANCELLED` - Transaction is no longer valid. Reverse any impacts to available balance and current balance. \n\n",
            "enum": [
              "AUTHORIZED",
              "PENDING",
              "POSTED",
              "CANCELLED"
            ]
          },
          "transaction_type": {
            "type": "string",
            "description": "Transaction type \n* `TRANSFER_IN` - External deposit of crypto funds into an account. \n* `TRANSFER_OUT` - Withdrawal of crypto funds from an account to an external location .  \n* `FIAT_TRANSFER_IN` - External deposit of FIAT funds into an account. \n* `FIAT_TRANSFER_OUT` - Withdrawal of FIAT funds from an account to an external location .  \n* `FIAT_TRANSFER_IN_RETURN` - Clawback of a FIAT deposit (e.g. due to bankiing error). \n* `FIAT_TRANSFER_OUT_RETURN` - Return of a FIAT withdrawal (e.g. due to the destination account being closed)  \n* `DEBIT_CORRECTION` - Debit account adjustment.  \n* `CREDIT_CORRECTION` - Credit account adjustment.  \n* `TRADE` -  Currency exchange transaction (applies to both the debit on the source account or credit on the destination account).  \n* `FEE` -  Fee deduction.  \n* `INTERNAL_TRANSFER` - Book (internal) movement of funds between account.  \n\n",
            "enum": [
              "TRANSFER_IN",
              "TRANSFER_OUT",
              "FIAT_TRANSFER_IN",
              "FIAT_TRANSFER_OUT",
              "FIAT_TRANSFER_IN_RETURN",
              "FIAT_TRANSFER_OUT_RETURN",
              "FEE",
              "DEBIT_CORRECTION",
              "CREDIT_CORRECTION",
              "TRADE",
              "INTERNAL_TRANSFER"
            ]
          },
          "category_type": {
            "type": "string",
            "description": "If this transaction related to a core platform feature \n* `DEPOSIT` - When this transaction was a result of a deposit.  \n* `EXCHANGE` - When this transaction was a result of an [exchange](#tag/Exchanges). \n* `TRANSFER` - When this transaction was a result of a [transfer](#tag/Transfers).  \n* `WITHDRAWAL` - When this transaction was a result of a [withdrawal](#tag/Withdrawals). \n\n",
            "enum": [
              "ADJUSTMENT",
              "DEPOSIT",
              "EXCHANGE",
              "TRANSFER",
              "WITHDRAWAL"
            ]
          },
          "category_id": {
            "type": "string",
            "description": "Where the `category_type` is present, this identifier allows you to lookup the category details using the standard APIs. For example, where a category_type is `TRANSFER` and the category_id is `abc-123`, you can lookup the original transfer that this transaction relates to using ```GET /transfers/abc-123```   \n"
          },
          "description": {
            "type": "string",
            "description": "Description"
          },
          "originator": {
            "$ref": "#/components/schemas/TransactionOriginator"
          },
          "rail_information": {
            "$ref": "#/components/schemas/RailInformation"
          }
        }
      },
      "ResponseSubscriptions": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/SubscriptionList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "SubscriptionList": {
        "required": [
          "subscriptions"
        ],
        "type": "object",
        "properties": {
          "subscriptions": {
            "type": "array",
            "description": "Subscription List",
            "items": {
              "$ref": "#/components/schemas/Subscription"
            }
          }
        }
      },
      "ResponseSettlement": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Settlement"
          }
        }
      },
      "Settlement": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Settlement ID"
          },
          "settlement_status": {
            "type": "string",
            "description": "Status of this settlement. Processed settlements are complete and funds dispersed",
            "enum": [
              "INITIALIZED",
              "DELIVERING",
              "CONVERTING",
              "SETTLED"
            ]
          },
          "settlement_executed_timestamp": {
            "type": "string",
            "description": "Time when this settlement was executed (when funds were dispersed)",
            "format": "date-time"
          },
          "settlement_asset_type": {
            "type": "string",
            "description": "Asset type of the settlement",
            "enum": [
              "FIAT",
              "BITCOIN",
              "ETHEREUM",
              "POLYGON"
            ]
          },
          "settlement_currency": {
            "type": "string",
            "description": "Currency of the settlement"
          },
          "settlement_amount": {
            "type": "number",
            "description": "Full amount of the settlement that was performed (prior to any fee deductions by the receiving institution)"
          },
          "settlement_details": {
            "type": "array",
            "description": "Breakdown of the transactions that were included in this settlement",
            "items": {
              "$ref": "#/components/schemas/SettlementDetails"
            }
          }
        }
      },
      "SettlementDetails": {
        "type": "object",
        "properties": {
          "source_account_customer_id": {
            "type": "string",
            "description": "Customer ID of the source account holder"
          },
          "source_account_id": {
            "type": "string",
            "description": "Source account from which exchange funds were withdrawn"
          },
          "source_asset_type": {
            "type": "string",
            "description": "Source account asset type",
            "enum": [
              "FIAT",
              "BITCOIN",
              "ETHEREUM",
              "POLYGON"
            ]
          },
          "source_currency": {
            "type": "string",
            "description": "Source account currency"
          },
          "source_amount": {
            "type": "number",
            "description": "Source account amount withdrawn"
          },
          "destination_account_customer_id": {
            "type": "string",
            "description": "Customer ID of the destination account holder"
          },
          "destination_account_id": {
            "type": "string",
            "description": "Destination account into which exchange funds are deposited"
          },
          "destination_asset_type": {
            "type": "string",
            "description": "Destination account asset type",
            "enum": [
              "FIAT",
              "BITCOIN",
              "ETHEREUM",
              "POLYGON"
            ]
          },
          "destination_currency": {
            "type": "string",
            "description": "Destination account currency"
          },
          "destination_amount": {
            "type": "number",
            "description": "Destination account amount deposited"
          },
          "payment_payor_id": {
            "type": "string",
            "description": "Optional Payor ID who performed the initial deposit (only on payment accounts)"
          },
          "payment_reference_id": {
            "type": "string",
            "description": "Optional Payment Reference ID associated to the initial deposit (only on payment accounts)"
          },
          "payment_expected_amount": {
            "type": "string",
            "description": "Optional expected amount for this payment (only on payment accounts)"
          }
        },
        "description": "Breakdown of the transactions that were included in this settlement"
      },
      "ResponsePayment": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Payment"
          }
        }
      },
      "DocumentError": {
        "required": [
          "document",
          "document_id",
          "mandatory",
          "status"
        ],
        "type": "object",
        "properties": {
          "document_id": {
            "type": "string",
            "description": "Unique identifier of the document",
            "enum": [
              "MISSING",
              "SUBMITTED",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "document": {
            "type": "string",
            "description": "Document Type the error occurred on",
            "readOnly": true,
            "enum": [
              "ANNUAL_REPORT",
              "BENEFICIAL_OWNERSHIP_CERTIFICATE",
              "BILL_OF_LADING",
              "CONTRACT",
              "DRIVERS_LICENCE_BACK",
              "DRIVERS_LICENCE_FRONT",
              "FINANCIAL_STATEMENT",
              "GOVERNMENT_ID_BACK",
              "GOVERNMENT_ID_FRONT",
              "INCORPORATION_DOCUMENTS",
              "INVOICE",
              "LEASE_AGREEMENT",
              "LLC_AGREEMENT",
              "OWNERSHIP_STRUCTURE_CHART",
              "PARTNERSHIP_AGREEMENT",
              "PASSPORT",
              "POWER_OF_ATTORNEY",
              "REGULATORY_LICENSE",
              "SELFIE",
              "SOCIAL_SECURITY_CARD",
              "UTILITY_BILL"
            ]
          },
          "status": {
            "type": "string",
            "description": "Status of the document upload",
            "enum": [
              "MISSING",
              "SUBMITTED",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "mandatory": {
            "type": "boolean",
            "description": "Indicates if the document is mandatory"
          }
        }
      },
      "PaymentStatusData": {
        "required": [
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique ID of the payment",
            "example": "550e8400-e29b-41d4-a716-446655440000"
          },
          "status": {
            "type": "string",
            "description": "Current status of the payment",
            "example": "REQUESTED"
          },
          "document_errors": {
            "type": "array",
            "description": "List of document errors that require attention",
            "items": {
              "$ref": "#/components/schemas/DocumentError"
            }
          }
        }
      },
      "ResponsePaymentStatus": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/PaymentStatusData"
          }
        }
      },
      "CorporationCustomer": {
        "required": [
          "customer_type",
          "id",
          "registered_name",
          "status"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Customer"
          },
          {
            "type": "object",
            "properties": {
              "registered_name": {
                "type": "string",
                "description": "Corporate entity registered name"
              },
              "trading_name": {
                "type": "string",
                "description": "Trading/'Doing Business As' name (if different to registered name)"
              },
              "registered_number": {
                "type": "string",
                "description": "Government registered number of the corporate entity (e.g. what is defined on the Articles of Incorporation)"
              },
              "registered_number_country": {
                "type": "string",
                "description": "Two-letter country code indicating where the corporation is legally registered or incorporated. Related to registered_number field (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
              },
              "corporate_tax_reference_number": {
                "type": "string",
                "description": "Government registered tax reference number. In many jurisdictions this is different to the `register_number`"
              },
              "corporate_tax_reference_number_country": {
                "type": "string",
                "description": "Two-letter country code of the country where the corporation is registered for tax purposes. Related to the corporate_tax_reference_number field (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
              },
              "registered_address": {
                "$ref": "#/components/schemas/registered_address"
              },
              "physical_address": {
                "$ref": "#/components/schemas/physical_address"
              },
              "telephone_number": {
                "type": "string",
                "description": "Telephone Number in E.164 format"
              },
              "website_address": {
                "type": "string",
                "description": "Website URL"
              },
              "ip_address": {
                "type": "string",
                "description": "IP address from which the customer initiated the application request"
              },
              "state_of_incorporation": {
                "type": "string",
                "description": "State / Province / Riding of Incorporation (2 digit code)"
              },
              "country_of_incorporation": {
                "type": "string",
                "description": "Country of incorporation (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
              },
              "corporate_entity_type": {
                "type": "string",
                "description": "Type of corporate entity",
                "enum": [
                  "C_CORP_PRIVATE",
                  "C_CORP_PUBLIC",
                  "HNWI",
                  "LLC",
                  "LLP",
                  "LP",
                  "S_CORP",
                  "SOLE_PROP",
                  "TRUST",
                  "NON_PROFIT",
                  "OTHER"
                ]
              },
              "corporate_entity_type_description": {
                "type": "string",
                "description": "Description of legal structure where entity type is `OTHER`"
              },
              "email_address": {
                "type": "string",
                "description": "Business Email Address (for example support@acme.inc)"
              },
              "established_on": {
                "type": "string",
                "description": "Date the business was established following RFC3339 (YYYY-MM-DD)"
              },
              "naics": {
                "type": "string",
                "description": "NAICS Code"
              },
              "naics_description": {
                "type": "string",
                "description": "NAICS Description"
              },
              "individuals": {
                "type": "array",
                "description": "Individuals Associated to CorporationApplication",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Individual"
                }
              },
              "investment_profile": {
                "$ref": "#/components/schemas/ProfileCorporateInvesting"
              },
              "kyc_profile": {
                "$ref": "#/components/schemas/ProfileCorporateKYC"
              }
            }
          }
        ]
      },
      "Customer": {
        "required": [
          "customer_type",
          "id",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the customer"
          },
          "customer_type": {
            "type": "string",
            "description": "Type of customer",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "status": {
            "type": "string",
            "description": "Customer Status - will determine servicing options on the customer and the customers accounts. \n* `ACTIVE` - Customer is open and available for use in line with its product configuration\n* `CLOSED` - Customer is permanently closed, no further actions can be performed on the customer. All accounts associated to the customer will also be `CLOSED`  \n* `PENDING` - Customer is under additional review prior to moving to the OPEN or CLOSED state. No actions can be performed on the customer or their respective accounts.  \n* `FROZEN` - Customer has been temporarily locked for all actions. All accounts associated to the customer will also be `FROZEN` \n* `EDD` -  Customer requires enhanced due diligence to be performed. The customer will operate as if frozen until transitioning to `ACTIVE` or `CLOSED`. \n* `DORMANT` - No activity has been seen in the last 12 months. The customer and their accounts are available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "ACTIVE",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          }
        },
        "discriminator": {
          "propertyName": "customer_type",
          "mapping": {
            "INDIVIDUAL": "#/components/schemas/IndividualCustomer",
            "CORPORATION": "#/components/schemas/CorporationCustomer"
          }
        }
      },
      "CustomerList": {
        "required": [
          "customers"
        ],
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "description": "Customer List",
            "items": {
              "$ref": "#/components/schemas/Customer"
            }
          }
        }
      },
      "IndividualCustomer": {
        "required": [
          "customer_type",
          "first_name",
          "id",
          "last_name",
          "status"
        ],
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Customer"
          },
          {
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string",
                "description": "First name"
              },
              "middle_name": {
                "type": "string",
                "description": "Middle Name(s) (if present)"
              },
              "last_name": {
                "type": "string",
                "description": "Last name"
              },
              "email_address": {
                "type": "string",
                "description": "Email Address"
              },
              "mailing_address": {
                "$ref": "#/components/schemas/mailing_address"
              },
              "telephone_number": {
                "type": "string",
                "description": "Telephone Number in E.164 format"
              },
              "tax_reference_number": {
                "type": "string",
                "description": "Tax reference number of the individual (SSN, ITIN, SIN, National Insurance Number etc)"
              },
              "passport_number": {
                "type": "string",
                "description": "Passport Number"
              },
              "nationality": {
                "type": "string",
                "description": "Nationality (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
              },
              "citizenship": {
                "type": "array",
                "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)",
                "items": {
                  "type": "string",
                  "description": "Citizenship (2 Digit ISO31661-Alpha2 Format - https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)"
                }
              },
              "date_of_birth": {
                "type": "string",
                "description": "RFC3339 (YYYY-MM-DD) Date of Birth ",
                "format": "date"
              },
              "us_residency_status": {
                "type": "string",
                "description": "US Residency Status",
                "enum": [
                  "US_CITIZEN",
                  "RESIDENT_ALIEN",
                  "NON_RESIDENT_ALIEN"
                ]
              },
              "employment_status": {
                "type": "string",
                "description": "Employment Status",
                "enum": [
                  "EMPLOYEE",
                  "SELF_EMPLOYED",
                  "RETIRED",
                  "UNEMPLOYED",
                  "OTHER"
                ]
              },
              "employment_description": {
                "type": "string",
                "description": "Employment (job) description."
              },
              "employer_name": {
                "type": "string",
                "description": "Employer name"
              },
              "occupation": {
                "type": "string",
                "description": "Occupation"
              },
              "investment_profile": {
                "$ref": "#/components/schemas/ProfileIndividualInvesting"
              },
              "kyc_profile": {
                "$ref": "#/components/schemas/ProfileIndividualKYC"
              }
            }
          }
        ]
      },
      "ResponseCustomers": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CustomerList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "CUSTOMER_INDIVIDUAL": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/IndividualCustomer"
          }
        }
      },
      "CUSTOMER_CORPORATION": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CorporationCustomer"
          }
        }
      },
      "ResponseIndividual": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Individual"
          }
        }
      },
      "CounterpartyList": {
        "required": [
          "counterparties"
        ],
        "type": "object",
        "properties": {
          "counterparties": {
            "type": "array",
            "description": "Counterparty List",
            "items": {
              "$ref": "#/components/schemas/CounterParty"
            }
          }
        }
      },
      "ResponseCounterparties": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CounterpartyList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "ResponseCounterparty": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/CounterParty"
          }
        }
      },
      "Application": {
        "required": [
          "account_to_open",
          "application_type",
          "customer_id",
          "id",
          "information_attested",
          "status",
          "terms_and_conditions_accepted"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the application",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "SUBMITTED",
              "PROCESSING",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "application_type": {
            "type": "string",
            "description": "Type of Application (Individual or CorporationApplication)",
            "enum": [
              "INDIVIDUAL",
              "CORPORATION"
            ]
          },
          "account_to_open": {
            "$ref": "#/components/schemas/AccountOpen"
          },
          "terms_and_conditions_accepted": {
            "type": "boolean",
            "description": "Set to true when the end customer accepts all terms and conditions for use of the platform. An application cannot be submitted until accepted."
          },
          "information_attested": {
            "type": "boolean",
            "description": "Setting to true means that the Customer (or the Ultimate Beneficial Owner, CEO, or Control Person for Corporate Customers) attests that all of the information provided on the application is true, accurate, and up to date at the time of submission. Rail Subscribers as defined in the Rail Platform Agreement, may not attest on behalf of the Customer.",
            "default": false
          },
          "customer_id": {
            "type": "string",
            "description": "The identifier you wish to use to uniquely identify this customer (applies to both individual and corporate customers). The customer ID follows the [External Identifier](https://docs.rail.io/guides/externalidentifiers/) pattern. "
          }
        },
        "description": "Application List",
        "discriminator": {
          "propertyName": "application_type",
          "mapping": {
            "INDIVIDUAL": "#/components/schemas/ApplicationIndividual",
            "CORPORATION": "#/components/schemas/ApplicationCorporation"
          }
        }
      },
      "ApplicationList": {
        "required": [
          "applications"
        ],
        "type": "object",
        "properties": {
          "applications": {
            "type": "array",
            "description": "Application List",
            "items": {
              "$ref": "#/components/schemas/Application"
            }
          }
        }
      },
      "ResponseApplications": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "INDIVIDUAL": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationIndividual"
          }
        }
      },
      "CORPORATION": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationCorporation"
          }
        }
      },
      "ApplicationFieldError": {
        "required": [
          "field_name",
          "status"
        ],
        "type": "object",
        "properties": {
          "field_name": {
            "type": "string",
            "description": "Application field to be corrected",
            "readOnly": true,
            "enum": [
              "customer_id",
              "account_to_open",
              "product_type",
              "asset_type",
              "id",
              "information_attested",
              "registered_name",
              "trading_name",
              "registered_number",
              "registered_address.unit_number",
              "registered_address.address_line1",
              "registered_address.address_line2",
              "registered_address.address_line3",
              "registered_address.city",
              "registered_address.state",
              "registered_address.postal_code",
              "registered_address.country_code",
              "telephone_number",
              "website_address",
              "state_of_incorporation",
              "country_of_incorporation",
              "corporate_entity_type",
              "contact_title",
              "contact_first_name",
              "contact_last_name",
              "contact_telephone_number",
              "contact_email_address",
              "physical_address.unit_number",
              "physical_address.address_line1",
              "physical_address.address_line2",
              "physical_address.address_line3",
              "physical_address.city",
              "physical_address.state",
              "physical_address.postal_code",
              "physical_address.country_code",
              "primary_business",
              "description_of_business_nature",
              "is_charitable",
              "business_jurisdictions",
              "funds_send_receive_jurisdictions",
              "new_york_office",
              "engage_in_activities",
              "regulated_status",
              "regulation_agency_regulation_number",
              "control_exemption_reason",
              "vendors_and_counterparties",
              "primary_source_of_funds",
              "total_investable_assets",
              "total_assets",
              "asset_allocation_to_crypto",
              "investment_experience_crypto",
              "investment_strategy_crypto",
              "initial_deposit_source",
              "ongoing_deposit_source",
              "frequency_of_crypto_transactions",
              "crypto_investment_plans",
              "investment_proceeds_use",
              "expected_crypto_assets",
              "perform_transfers_with_unhosted_wallets",
              "known_unhosted_wallet_addresses",
              "trades_per_month",
              "usd_value_of_crypto",
              "frequency_of_transactions",
              "monthly_crypto_investment_deposit",
              "monthly_investment_deposit",
              "monthly_crypto_deposits",
              "monthly_deposits",
              "monthly_crypto_investment_withdrawal",
              "monthly_investment_withdrawal",
              "monthly_crypto_withdrawals",
              "monthly_withdrawals",
              "trade_internationally",
              "trade_jurisdictions"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status of the field",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "CHANGES_REQUESTED",
              "APPROVED"
            ]
          },
          "description": {
            "type": "string",
            "description": "Additional supporting error details"
          }
        },
        "description": "List of validation errors with the application.",
        "readOnly": true
      },
      "ApplicationState": {
        "required": [
          "created_date",
          "id",
          "status",
          "status_update_date"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the application",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "description": "Status of the application",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "SUBMITTED",
              "PROCESSING",
              "CHANGES_REQUESTED",
              "REJECTED",
              "APPROVED"
            ]
          },
          "application_errors": {
            "type": "array",
            "description": "List of errors with the application.",
            "readOnly": true,
            "items": {
              "type": "string",
              "description": "List of errors with the application.",
              "readOnly": true,
              "enum": [
                "MISSING_BENEFICIAL_OWNER",
                "MISSING_OFFICER",
                "MISSING_INDIVIDUAL",
                "TERMS_AND_CONDITIONS_NOT_ACCEPTED",
                "MISSING_AUTHORIZED_PERSON",
                "MISSING_CONTROL_PERSON"
              ]
            }
          },
          "validation_errors": {
            "type": "array",
            "description": "List of validation errors with the application.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ApplicationFieldError"
            }
          },
          "application_document_errors": {
            "type": "array",
            "description": "List of document errors with the application.",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/DocumentError"
            }
          },
          "application_individual_errors": {
            "type": "array",
            "description": "ONLY for corporate applications. List of errors for the submitted individuals",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/IndividualState"
            }
          },
          "created_date": {
            "type": "string",
            "description": "Date when the application was created",
            "readOnly": true
          },
          "status_update_date": {
            "type": "string",
            "description": "Date when the application was updated",
            "readOnly": true
          }
        }
      },
      "IndividualFieldError": {
        "required": [
          "field_name",
          "status"
        ],
        "type": "object",
        "properties": {
          "field_name": {
            "type": "string",
            "description": "Individual field to be corrected",
            "readOnly": true,
            "enum": [
              "id",
              "person_role",
              "person_status",
              "first_name",
              "middle_name",
              "last_name",
              "email_address",
              "mailing_address.unit_number",
              "mailing_address.address_line1",
              "mailing_address.address_line2",
              "mailing_address.address_line3",
              "mailing_address.city",
              "mailing_address.state",
              "mailing_address.postal_code",
              "mailing_address.country_code",
              "telephone_number",
              "tax_reference_number",
              "passport_number",
              "nationality",
              "citizenship",
              "date_of_birth",
              "percentage_ownership",
              "title",
              "us_residency_status"
            ]
          },
          "status": {
            "type": "string",
            "description": "Error status of the field",
            "readOnly": true,
            "enum": [
              "INCOMPLETE",
              "READY_FOR_SUBMISSION",
              "CHANGES_REQUESTED",
              "APPROVED"
            ]
          },
          "description": {
            "type": "string",
            "description": "Additional supporting error details"
          }
        }
      },
      "IndividualState": {
        "type": "object",
        "properties": {
          "individual_id": {
            "type": "string"
          },
          "validation_errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IndividualFieldError"
            }
          },
          "document_errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DocumentError"
            }
          }
        },
        "description": "ONLY for corporate applications. List of errors for the submitted individuals",
        "readOnly": true
      },
      "ResponseApplicationState": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/ApplicationState"
          }
        }
      },
      "Account": {
        "required": [
          "asset_type_id",
          "available_balance",
          "current_balance",
          "customer_id",
          "id",
          "product_id",
          "product_type",
          "status"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique Identifier for the account - defined by the Client during account open"
          },
          "status": {
            "type": "string",
            "description": "Account Status - will determine servicing options on the account. \n* `OPEN` - Account is open and available for use in line with its product configuration\n* `CLOSED` - Account is permanently closed, no further actions can be performed on the account.  \n* `PENDING` - Account is under additional review prior to moving to the OPEN or CLOSED state. No actions can be performed on the account.  \n* `FROZEN` - Account has been temporarily locked for all actions (deposits, transfers, exchanges and withdrawals).  \n* `EDD` -  Account (and/or customer) requires enhanced due diligence to be performed. The accounts will operate as if frozen. \n* `DORMANT` - No activity has been seen in the last 12 months. The account is available for use.  \n\n",
            "readOnly": true,
            "enum": [
              "OPEN",
              "CLOSED",
              "FROZEN",
              "PENDING",
              "EDD",
              "DORMANT"
            ]
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type IDs follow a simple structure as follows: `{$BLOCKCHAIN}_{$NETWORK}_{$CURRENCY_CODE}`  Simple asset type to test with include \n- `ETHEREUM_SEPOLIA_ETH`\n- `ETHEREUM_SEPOLIA_USDC`\n- `SOLANA_DEVNET_SOL`\n- `BITCOIN_TESTNET_BTC`\n- `FIAT_TESTNET_USD`\n- `FIAT_TESTNET_USD`\n- `FIAT_MAINNET_USD`\n- `FIAT_TESTNET_EUR`\n"
          },
          "product_type": {
            "type": "string",
            "description": "* `CLIENT` - Accounts at the Client level for managing client treasury operations\n* `DEPOSIT` - Accounts at the Customer level account for managing customer funds on platform\n* `VIRTUAL` - Accounts at the Customer level account for tracking externally managed customer funds \n\nSee [account concepts](#section/Concepts/Accounts) for additional details on these product types",
            "readOnly": true,
            "enum": [
              "CLIENT",
              "DEPOSIT",
              "VIRTUAL"
            ]
          },
          "product_id": {
            "type": "string",
            "description": "Client Product configuration this account respects. These are configured in the management portal. Default products include `BASIC_DEPOSIT`"
          },
          "customer_id": {
            "type": "string",
            "description": "Customer ID for whom the account belongs to"
          },
          "current_balance": {
            "type": "number",
            "description": "Full balance on the account including funds on hold"
          },
          "available_balance": {
            "type": "number",
            "description": "Balance available for immediate spending (excludes held funds)"
          }
        }
      },
      "AccountList": {
        "required": [
          "accounts"
        ],
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "description": "Account List",
            "items": {
              "$ref": "#/components/schemas/Account"
            }
          }
        }
      },
      "ResponseAccounts": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AccountList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "ResponseAccount": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Account"
          }
        }
      },
      "ResponseStatements": {
        "required": [
          "data",
          "links"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/StatementList"
          },
          "links": {
            "$ref": "#/components/schemas/Page"
          }
        }
      },
      "StatementList": {
        "required": [
          "statements"
        ],
        "type": "object",
        "properties": {
          "statements": {
            "type": "array",
            "description": "Statement List",
            "items": {
              "$ref": "#/components/schemas/StatementSummary"
            }
          }
        }
      },
      "StatementSummary": {
        "required": [
          "id",
          "month",
          "year"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Statement identifier"
          },
          "year": {
            "type": "integer",
            "description": "Statement year",
            "format": "int32"
          },
          "month": {
            "type": "integer",
            "description": "Statement month",
            "format": "int32"
          }
        },
        "description": "Statement List"
      },
      "ResponseStatement": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Statement"
          }
        }
      },
      "Statement": {
        "required": [
          "account_id",
          "asset_type_id",
          "closing_balance",
          "customer",
          "opening_balance",
          "statement_period",
          "transactions"
        ],
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string",
            "description": "Account identifier"
          },
          "asset_type_id": {
            "type": "string",
            "description": "Asset type identifier"
          },
          "statement_period": {
            "type": "string",
            "description": "Statement period"
          },
          "opening_balance": {
            "type": "number",
            "description": "Opening balance for the statement period"
          },
          "closing_balance": {
            "type": "number",
            "description": "Closing balance for the statement period"
          },
          "customer": {
            "$ref": "#/components/schemas/StatementCustomer"
          },
          "transactions": {
            "type": "array",
            "description": "List of transactions for the statement period",
            "items": {
              "$ref": "#/components/schemas/StatementTransaction"
            }
          }
        }
      },
      "StatementCustomer": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Customer name"
          },
          "address1": {
            "type": "string",
            "description": "Address Line 1"
          },
          "address2": {
            "type": "string",
            "description": "Address Line 2"
          },
          "address3": {
            "type": "string",
            "description": "Address Line 3"
          },
          "city": {
            "type": "string",
            "description": "City"
          },
          "state": {
            "type": "string",
            "description": "State / Province"
          },
          "postal_code": {
            "type": "string",
            "description": "Postal / Zip Code"
          },
          "country": {
            "type": "string",
            "description": "Country"
          }
        },
        "description": "Customer information"
      },
      "StatementTransaction": {
        "required": [
          "amount",
          "balance",
          "description",
          "transaction_date",
          "transaction_id",
          "transaction_posted_date",
          "transaction_type"
        ],
        "type": "object",
        "properties": {
          "transaction_id": {
            "type": "string",
            "description": "Transaction identifier"
          },
          "transaction_type": {
            "type": "string",
            "description": "Type of transaction"
          },
          "description": {
            "type": "string",
            "description": "Transaction description"
          },
          "transaction_date": {
            "type": "string",
            "description": "Date time the transaction was performed",
            "format": "date-time"
          },
          "transaction_posted_date": {
            "type": "string",
            "description": "Date time the transaction was posted",
            "format": "date-time"
          },
          "amount": {
            "type": "number",
            "description": "Transaction amount"
          },
          "balance": {
            "type": "number",
            "description": "Account balance after transaction"
          }
        },
        "description": "List of transactions for the statement period"
      },
      "ResponseSubscriptionBase": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/SubscriptionBase"
          }
        }
      },
      "SubscriptionBase": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Subscription ID",
            "readOnly": true
          }
        }
      }
    },
    "securitySchemes": {
      "OAuth2Flow": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://auth.layer2financial.com/oauth2/ausbdqlx69rH6OjWd696/v1/token",
            "scopes": {
              "customers:read": "View Customer Data",
              "customers:write": "Create and Modify Customer Related Data",
              "accounts:read": "View Account Data",
              "accounts:write": "Create and Modify Account Related Data",
              "settlements:read": "View Settlements Data",
              "applications:read": "View Application Data",
              "applications:write": "Create and Modify Application Related Data",
              "transfers:read": "View Transfers Data",
              "transfers:write": "Create and Modify Transfers Related Data",
              "withdrawals:read": "View Withdrawals Data",
              "withdrawals:write": "Create and Modify Withdrawals Related Data",
              "exchanges:read": "View Exchanges Data",
              "exchanges:write": "Create and Modify Exchange Related Data",
              "deposits:read": "View Deposit Related data",
              "deposits:write": "Create and Modify Deposit Related Data",
              "subscriptions:read": "View Subscription Related data",
              "subscriptions:write": "Create and Modify Subscription Related Data",
              "payments:read": "View Payments Related data",
              "payments:write": "Create and Modify Payments Related Data"
            }
          }
        }
      }
    }
  }
}