---
updatedAt: 2026-04-27T20:31:30.000Z
agentTools:
  projectIndex: https://developers.routable.com/llms.txt
---

# List Accounts

Returns a list of previously created Accounts.

# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Routable API",
    "version": "2022-01-12",
    "termsOfService": "https://routable.com/legal/terms-of-service/",
    "description": "This RESTful API allows [Routable](https://www.routable.com) clients to process payments, add vendors, and alter\nsettings for their Routable implementations.",
    "contact": {
      "name": "Routable Developer Experience Team",
      "email": "developers@routable.com",
      "url": "https://developers.routable.com/v1/docs"
    }
  },
  "servers": [
    {
      "url": "https://api.routable.com",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.routable.com",
      "description": "Sandbox"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Accounts"
    },
    {
      "name": "Companies"
    },
    {
      "name": "Compliance Checks"
    },
    {
      "name": "Payables"
    },
    {
      "name": "Payment Methods"
    },
    {
      "name": "Receivables"
    },
    {
      "name": "Tax Forms"
    },
    {
      "name": "Deprecated Webhooks"
    }
  ],
  "externalDocs": {
    "description": "Visit the Routable Developer Center for usage guides, recipes, tools and API reference material.",
    "url": "https://developers.routable.com"
  },
  "paths": {
    "/v1/settings/accounts": {
      "get": {
        "operationId": "list-accounts",
        "summary": "List Accounts",
        "description": "Returns a list of previously created Accounts.",
        "parameters": [
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "RateLimit": {
                "description": "Indicates how much of the rate limiting quota remains for use by this type of request and when more of the quota will be available. For example, when a \"fetch\" request for most endpoints reaches the limit, the quota remaining will be 0, `r=0` and the time until the quota refills will be 1 minute or 60 seconds, `t=60`. We have two policies, \"fetch\" for most endpoints, and \"change\" for endpoints that perform a great deal of work such as our [Create a Payable](https://developers.routable.com/reference/create-payable) endpoint.\nSee the [draft-ietf-httpapi-ratelimit-headers-10](https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/) draft RFC for more details on the format of this header.",
                "schema": {
                  "type": "string",
                  "example": "\"fetch\";r=0;t=60;pk=:8c581d79-bb84-4bc1-b1c5-8c073264a569:"
                }
              },
              "RateLimit-Policy": {
                "description": "The policy for rate limiting that was used by the request. This lists the quota allocated over a window of time. We have two policies, \"fetch\" for most endpoints, and \"change\" for endpoints that perform a great deal of work such as our [Create a Payable](https://developers.routable.com/reference/create-payable) endpoint.\nThe `q` parameter is the `quota` - how many requests you can make in a given `window`. The `w` parameter is the `window` - the length in seconds before the quota of calls in `q` refills.\nSee the [draft-ietf-httpapi-ratelimit-headers-10](https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/) draft RFC for more details on the format of this header.",
                "schema": {
                  "type": "string",
                  "example": "\"fetch\";q=600;w=60;pk=:8c581d79-bb84-4bc1-b1c5-8c073264a569:"
                }
              },
              "Request-ID": {
                "description": "The request ID for the request that generated this response. **Please log this.** Request IDs are invaluable when troubleshooting issues or contacting Routable's Support or Developer Experience teams.",
                "schema": {
                  "type": "string",
                  "format": "uuid",
                  "example": "bba63245-37d2-4c6a-9e82-e9d12a247c06"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/accounts.AccountList"
                },
                "examples": {
                  "example": {
                    "$ref": "#/components/examples/list-accounts"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Accounts"
        ]
      }
    }
  },
  "webhooks": {
    "company.created": {
      "post": {
        "operationId": "company.created",
        "summary": "Company Created",
        "description": "A `company.created` event is fired when a `Company` is created.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Companies"
        ]
      }
    },
    "company.invitation_accepted": {
      "post": {
        "operationId": "company.invitation_accepted",
        "summary": "Company Invitation Accepted",
        "description": "A `company.invitation_accepted` event is fired when a `Company` accepts an invitation.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Companies"
        ]
      }
    },
    "company.invited": {
      "post": {
        "operationId": "company.invited",
        "summary": "Company Invited",
        "description": "A `company.invited` event is fired when a `Company` receives an invitation.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Companies"
        ]
      }
    },
    "item.approval_change": {
      "post": {
        "operationId": "item.approval_change",
        "summary": "(Deprecated) Item Approval Changed",
        "description": "The `item.approval_change` event is deprecated. Production code should not respond to this event.",
        "deprecated": true,
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        }
      }
    },
    "item.create": {
      "post": {
        "operationId": "item.create",
        "summary": "(Deprecated) Item Created",
        "description": "The `item.create` event is deprecated. Production code should not respond to this event.",
        "deprecated": true,
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Deprecated Webhooks"
        ]
      }
    },
    "item.refreshed_from_ledger": {
      "post": {
        "operationId": "item.refreshed_from_ledger",
        "summary": "(Deprecated) Item Updated from Accounting Software",
        "description": "The `item.refreshed_from_ledger` event is deprecated. Production code should not respond to this event.",
        "deprecated": true,
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Deprecated Webhooks"
        ]
      }
    },
    "item.status_change": {
      "post": {
        "operationId": "item.status_change",
        "summary": "(Deprecated) Item Status Change",
        "description": "The `item.status_change` event is deprecated. Production code should not respond to this event.",
        "deprecated": true,
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Deprecated Webhooks"
        ]
      }
    },
    "payable.approval_changed": {
      "post": {
        "operationId": "payable.approval_changed",
        "summary": "Payable Approval Changed",
        "description": "A `payable.approval_changed` event is fired when a `Payable` receives an approval.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payables"
        ]
      }
    },
    "payable.created": {
      "post": {
        "operationId": "payable.created",
        "summary": "Payable Created",
        "description": "A `payable.created` event is fired when a `Payable` is created.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payables"
        ]
      }
    },
    "payable.creation_failed": {
      "post": {
        "operationId": "payable.creation_failed",
        "summary": "Payable Creation Failed",
        "description": "A `payable.creation_failed` event is fired when creation of a `Payable` fails during processing, for example, due to a failure to sync with your accounting software.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payables"
        ]
      }
    },
    "payable.refreshed_from_ledger": {
      "post": {
        "operationId": "payable.refreshed_from_ledger",
        "summary": "Payable Updated by Accounting Software",
        "description": "A `payable.refreshed_from_ledger` event is fired a `Payable` has been updated with refreshed data from your accounting software.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payables"
        ]
      }
    },
    "payable.status_changed": {
      "post": {
        "operationId": "payable.status_changed",
        "summary": "Payable Status Changed",
        "description": "A `payable.status_changed` event is fired when a `Payable` changes [status](https://developers.routable.com/docs/payment-statuses).",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payables"
        ]
      }
    },
    "payment_method.created": {
      "post": {
        "operationId": "payment_method.created",
        "summary": "Payment Method Created",
        "description": "A `payment_method.created` event is fired when a `PaymentMethod` is created.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Payment Methods"
        ]
      }
    },
    "receivable.approval_changed": {
      "post": {
        "operationId": "receivable.approval_changed",
        "summary": "Receivable Approval Changed",
        "description": "A `receivable.approval_changed` event is fired when a `Receivable` receives an approval.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Receivables"
        ]
      }
    },
    "receivable.created": {
      "post": {
        "operationId": "receivable.created",
        "summary": "Receivable Created",
        "description": "A `receivable.created` event is fired when a `Receivable` is created.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Receivables"
        ]
      }
    },
    "receivable.creation_failed": {
      "post": {
        "operationId": "receivable.creation_failed",
        "summary": "Receivable Creation Failed",
        "description": "A `receivable.creation_failed` event is fired when creation of a `Receivable` fails during processing, for example, due to a failure to sync with your accounting software.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Receivables"
        ]
      }
    },
    "receivable.refreshed_from_ledger": {
      "post": {
        "operationId": "receivable.refreshed_from_ledger",
        "summary": "Receivable Updated by Accounting Software",
        "description": "A `receivable.refreshed_from_ledger` event is fired a `Receivable` has been updated with refreshed data from your accounting software.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Receivables"
        ]
      }
    },
    "receivable.status_changed": {
      "post": {
        "operationId": "receivable.status_changed",
        "summary": "Receivable Status Changed",
        "description": "A `receivable.status_changed` event is fired when a `Receivable` changes [status](https://developers.routable.com/docs/payment-statuses).",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Receivables"
        ]
      }
    },
    "risk_report.cant_evaluate": {
      "post": {
        "operationId": "risk_report.cant_evaluate",
        "summary": "Compliance Check Failed",
        "description": "The `risk_report.cant_evaluate` event is fired when a compliance Check failed due to an error.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "risk_report.dismissed": {
      "post": {
        "operationId": "risk_report.dismissed",
        "summary": "Compliance Check Dismissed",
        "description": "The `risk_report.dismissed` event is fired when a compliance check is manually dismissed.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "risk_report.outdated": {
      "post": {
        "operationId": "risk_report.outdated",
        "summary": "Compliance Check Outdated",
        "description": "The `risk_report.outdated` event is fired when a `Company` that has been enrolled in compliance checks has changed its legal name or other entity data, and as a result, the compliance status is now stale.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "risk_report.passed": {
      "post": {
        "operationId": "risk_report.passed",
        "summary": "Compliance Check Passed",
        "description": "The `risk_report.passed` event is fired when a compliance check of a `Company` reveals no issues. Production code should not respond to this event.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "risk_report.queued": {
      "post": {
        "operationId": "risk_report.queued",
        "summary": "Compliance Check Queued",
        "description": "The `risk_report.queued` event is fired when a `Company` is queued for a compliance check, but the check has not yet been performed.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "risk_report.review_required": {
      "post": {
        "operationId": "risk_report.review_required",
        "summary": "Compliance Check Review Required",
        "description": "The `risk_report.review_required` event is fired when issues are found with a compliance check on a `Company`. Manual intervention from a `TeamMember` will be required to determine whether or not to transact with the `Company` before `Payables` and `Receivables` to that `Company` are possible.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Compliance Checks"
        ]
      }
    },
    "tax_form.created": {
      "post": {
        "operationId": "tax_form.created",
        "summary": "Tax Form Created",
        "description": "A `tax_form.created` event is fired when a `TaxForm` is created.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Tax Forms"
        ]
      }
    },
    "test.test": {
      "post": {
        "operationId": "test.test",
        "summary": "Test Event",
        "description": "A `test.test` event is fired only when Routable is validating your webhook script. Production code should not respond to this event.",
        "parameters": [
          {
            "name": "Routable-Signature",
            "in": "header",
            "schema": {
              "type": "string"
            },
            "description": "An HMAC-SHA256 hash of the value of `Routable-Signature-Timestamp`, a period, and the raw JSON webhook request body. See [https://developers.routable.com/docs/webhooks](https://developers.routable.com/docs/webhooks) for details and code samples describing how to decrypt and validate this value."
          },
          {
            "name": "Routable-Signature-Timestamp",
            "in": "header",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "A timestamp in GMT. Webhook events where the timestamp is more than five minutes old, or in the future, must be rejected by your code with a `401 Unauthorized`."
          }
        ],
        "requestBody": {
          "description": "The standard-formatted Routable webhook payload.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/webhooks.OutgoingWebhookEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a `200 OK` status with no body to indicate that the webhook was processed successfully."
          },
          "401": {
            "description": "Return a `401 Unauthorized` status with no body if any of the [validation steps](https://developers.routable.com/docs/webhooks) are unsuccessful when processing the incoming webhook event."
          }
        },
        "tags": [
          "Webhooks"
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Find your Routable API Token in the Routable Dashboard's Account Settings section.\n\nSee our [help docs](https://docs.routable.com/hc/en-us/articles/21511654870797-Getting-Started-with-the-API) for more\ninformation."
      }
    },
    "schemas": {
      "shared.SelfLink": {
        "description": "Link to this object.",
        "type": "string",
        "format": "uri-reference"
      },
      "shared.ListLinks": {
        "description": "Related links.",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/shared.SelfLink"
          },
          "next": {
            "description": "Link to the next page of results.",
            "type": "string",
            "format": "uri",
            "nullable": true
          },
          "prev": {
            "description": "Link to the previous page of results.",
            "type": "string",
            "format": "uri",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "self"
        ]
      },
      "shared.PaginatedList": {
        "type": "object",
        "properties": {
          "object": {
            "description": "The object’s type (`List`).",
            "type": "string",
            "enum": [
              "List"
            ]
          },
          "links": {
            "$ref": "#/components/schemas/shared.ListLinks"
          }
        },
        "required": [
          "object",
          "links"
        ]
      },
      "accounts.AccountLedgerMeta": {
        "description": "The account's metadata in your accounting software.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The account's ID in your accounting software.",
            "type": "string",
            "nullable": true
          },
          "payable_id": {
            "type": "string",
            "nullable": true
          },
          "receivable_id": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "payable_id",
          "receivable_id"
        ]
      },
      "accounts.AccountLinks": {
        "description": "Related links.",
        "type": "object",
        "properties": {
          "self": {
            "$ref": "#/components/schemas/shared.SelfLink"
          }
        },
        "required": [
          "self"
        ]
      },
      "accounts.CommonAccount": {
        "type": "object",
        "properties": {
          "object": {
            "description": "The object’s type (`Account`).",
            "type": "string",
            "enum": [
              "Account"
            ]
          },
          "id": {
            "description": "The Account ID.",
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "description": "The date the Account was created.",
            "type": "string",
            "format": "date-time"
          },
          "is_deleted": {
            "description": "Whether the Account is soft deleted.",
            "type": "boolean"
          },
          "is_disabled": {
            "description": "Whether the Account is disabled.",
            "type": "boolean"
          },
          "is_usable_for_payables": {
            "description": "Whether the Account is usable as a Payable's `withdraw_from_account`.",
            "type": "boolean"
          },
          "is_usable_for_receivables": {
            "description": "Whether the Account is usable as a Receivable's `receiving_account`.",
            "type": "boolean"
          },
          "is_valid": {
            "description": "Whether the Account is valid.",
            "type": "boolean"
          },
          "ledger": {
            "$ref": "#/components/schemas/accounts.AccountLedgerMeta"
          },
          "name": {
            "description": "The Account's name.",
            "type": "string",
            "maxLength": 128
          },
          "type": {
            "description": "The type of Account.",
            "type": "string",
            "enum": [
              "balance",
              "bank",
              "external",
              "paypal"
            ]
          },
          "links": {
            "$ref": "#/components/schemas/accounts.AccountLinks"
          }
        },
        "required": [
          "object",
          "id",
          "created_at",
          "is_deleted",
          "is_disabled",
          "is_usable_for_payables",
          "is_usable_for_receivables",
          "is_valid",
          "ledger",
          "name",
          "type",
          "links"
        ]
      },
      "accounts.AccountBankTypeDetails": {
        "type": "object",
        "properties": {
          "account_number": {
            "description": "The bank account number. In responses, all but the last four digits will be masked for security.",
            "type": "string"
          },
          "account_type": {
            "description": "The type of bank account.",
            "type": "string",
            "enum": [
              "checking",
              "savings"
            ]
          },
          "institution_name": {
            "description": "The bank's name.",
            "type": "string"
          },
          "logo": {
            "description": "The URL of the bank's logo in PNG format.",
            "format": "uri",
            "type": "string"
          },
          "primary_color": {
            "description": "The bank's primary color hex code.",
            "example": "#0075a3",
            "maxLength": 7,
            "minLength": 4,
            "type": "string"
          },
          "routing_number": {
            "description": "The bank's nine-digit routing number.",
            "minLength": 9,
            "maxLength": 9,
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "account_number",
          "account_type",
          "institution_name",
          "routing_number"
        ]
      },
      "accounts.AccountBank": {
        "title": "Account (Bank)",
        "description": "Banks can be used to fund payments and receive ACH",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/accounts.CommonAccount"
          },
          {
            "type": "object",
            "required": [
              "type",
              "type_details"
            ],
            "properties": {
              "type": {
                "description": "The type of Account",
                "type": "string",
                "enum": [
                  "bank"
                ]
              },
              "type_details": {
                "$ref": "#/components/schemas/accounts.AccountBankTypeDetails"
              }
            }
          }
        ]
      },
      "accounts.AccountBalanceTypeDetails": {
        "type": "object",
        "properties": {
          "available_amount": {
            "description": "The amount available in your balance.",
            "type": "string"
          },
          "is_usable": {
            "description": "Whether the balance is usable.",
            "type": "boolean"
          },
          "pending_amount": {
            "description": "The amount pending in your balance.",
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "available_amount",
          "is_usable",
          "pending_amount"
        ]
      },
      "accounts.AccountBalance": {
        "title": "Account (Balance)",
        "description": "Balances can be used with same day and next day ACH payments",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/accounts.CommonAccount"
          },
          {
            "type": "object",
            "required": [
              "type",
              "type_details"
            ],
            "properties": {
              "type": {
                "description": "The type of account",
                "type": "string",
                "enum": [
                  "balance"
                ]
              },
              "type_details": {
                "$ref": "#/components/schemas/accounts.AccountBalanceTypeDetails"
              }
            }
          }
        ]
      },
      "accounts.AccountPayPalTypeDetails": {
        "type": "object",
        "additionalProperties": false
      },
      "accounts.AccountPayPal": {
        "title": "Account (PayPal)",
        "description": "A PayPal account that can send Payables via PayPal.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/accounts.CommonAccount"
          },
          {
            "type": "object",
            "required": [
              "type",
              "type_details"
            ],
            "properties": {
              "type": {
                "description": "The type of Account",
                "type": "string",
                "enum": [
                  "paypal"
                ]
              },
              "type_details": {
                "$ref": "#/components/schemas/accounts.AccountPayPalTypeDetails"
              }
            }
          }
        ]
      },
      "accounts.AccountExternalTypeDetails": {
        "type": "object",
        "additionalProperties": false
      },
      "accounts.AccountExternal": {
        "title": "Account (External)",
        "description": "A reference to an account linked from your accounting software.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/accounts.CommonAccount"
          },
          {
            "type": "object",
            "required": [
              "type",
              "type_details"
            ],
            "properties": {
              "type": {
                "description": "The type of Account",
                "type": "string",
                "enum": [
                  "external"
                ]
              },
              "type_details": {
                "$ref": "#/components/schemas/accounts.AccountExternalTypeDetails"
              }
            }
          }
        ]
      },
      "accounts.Account": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "bank": "#/components/schemas/accounts.AccountBank",
            "balance": "#/components/schemas/accounts.AccountBalance",
            "external": "#/components/schemas/accounts.AccountBalance",
            "paypal": "#/components/schemas/accounts.AccountPayPal"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/accounts.AccountBank"
          },
          {
            "$ref": "#/components/schemas/accounts.AccountBalance"
          },
          {
            "$ref": "#/components/schemas/accounts.AccountExternal"
          },
          {
            "$ref": "#/components/schemas/accounts.AccountPayPal"
          }
        ]
      },
      "accounts.AccountList": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/shared.PaginatedList"
          },
          {
            "type": "object",
            "required": [
              "results"
            ],
            "properties": {
              "results": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accounts.Account"
                }
              }
            }
          }
        ]
      },
      "webhooks.WebhookDetail": {
        "type": "object",
        "title": "Additional Details",
        "description": "An optional detail object providing more information about the event that occurred.",
        "properties": {
          "company_id": {
            "description": "The ID of the `Company` to which the resource that triggered the webhook belongs.",
            "type": "string",
            "format": "uuid"
          },
          "errors": {
            "type": "object",
            "description": "A list of any errors that may have occurred on the action that triggered the webhook.",
            "nullable": true
          },
          "external_id": {
            "description": "The external ID of the resource that fired the webhook, if applicable.",
            "type": "string",
            "minLength": 1,
            "nullable": true
          },
          "idempotency_key": {
            "description": "The idempotency key of the request that fired the webhook, if applicable.",
            "type": "string",
            "minLength": 1,
            "nullable": true
          },
          "request_id": {
            "description": "The request ID for the request that fired the webhook, if applicable.",
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        }
      },
      "webhooks.WebhookEventResource": {
        "description": "The type of resource a webhook references:\n| Value              | Resource          | URL to Query the Resource |\n| ------------------ | ----------------- | ----------------------- |\n| `company`          | `Company`         | `/v2/companies/{object_id}` |\n| `item`             | ***deprecated***  | Do not use. |\n| `payable`          | `Payable`         | `/v2/payables/{object_id}` |\n| `payment_method`   | `PaymentMethod`   | `/v2/companies/{detail.company_id}/payment-methods/{object_id}` |\n| `receivable`       | `Receivable`      | `/v2/receivables/{object_id}` |\n| `risk_report`      | `ComplianceCheck` | `/v2/companies/{detail.company_id}/compliance-checks`  |\n| `tax_form`         | `TaxForm`         | `/v2/companies/{detail.company_id}/tax-forms/{object_id}` |\n| `test`             | N/A               | Only used for test webhooks sent during setup. |",
        "type": "string",
        "enum": [
          "company",
          "item",
          "payable",
          "payment_method",
          "receivable",
          "risk_report",
          "tax_form",
          "test"
        ]
      },
      "webhooks.OutgoingWebhookEvent": {
        "type": "object",
        "title": "Outgoing Webhook Event",
        "properties": {
          "detail": {
            "$ref": "#/components/schemas/webhooks.WebhookDetail"
          },
          "event_name": {
            "description": "The event that triggered the webhook.",
            "type": "string"
          },
          "event_resource": {
            "$ref": "#/components/schemas/webhooks.WebhookEventResource"
          },
          "object_id": {
            "description": "The ID of the resource associated with this event.",
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "required": [
          "company_id",
          "event_name",
          "event_resource",
          "object_id"
        ]
      }
    },
    "parameters": {
      "page": {
        "name": "page",
        "description": "Retrieve a specific page of a `List`.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 1,
          "minimum": 1
        }
      },
      "page_size": {
        "name": "page_size",
        "description": "Set the number of results per page of a `List`.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 10,
          "minimum": 1,
          "maximum": 100
        }
      }
    },
    "examples": {
      "list-accounts": {
        "value": {
          "object": "List",
          "results": [
            {
              "object": "Account",
              "id": "f19c4d53-8f29-4963-ac0d-4b5ce2142973",
              "type_details": {
                "available_amount": "450.00",
                "is_usable": true,
                "pending_amount": "0.00"
              },
              "created_at": "2019-08-24T14:15:22+00:00",
              "is_deleted": false,
              "is_disabled": false,
              "is_usable_for_payables": true,
              "is_usable_for_receivables": true,
              "is_valid": true,
              "ledger": {
                "id": null,
                "payable_id": null,
                "receivable_id": null
              },
              "name": "Routable balance",
              "type": "balance",
              "links": {
                "self": "https://api.sandbox.routable.com/v1/settings/accounts/f19c4d53-8f29-4963-ac0d-4b5ce2142973"
              }
            },
            {
              "object": "Account",
              "id": "80093ba8-8997-4537-9764-b2452a03b0e0",
              "type_details": {
                "account_number": "***5808",
                "account_type": "checking",
                "institution_name": "Citibank",
                "routing_number": "065400137"
              },
              "created_at": "2019-08-24T14:15:22+00:00",
              "is_deleted": false,
              "is_disabled": false,
              "is_usable_for_payables": true,
              "is_usable_for_receivables": true,
              "is_valid": true,
              "ledger": {
                "id": null,
                "payable_id": null,
                "receivable_id": null
              },
              "name": "Citibank ***5808",
              "type": "bank",
              "links": {
                "self": "https://api.sandbox.routable.com/v1/settings/accounts/80093ba8-8997-4537-9764-b2452a03b0e0"
              }
            }
          ],
          "links": {
            "self": "https://api.sandbox.routable.com/v1/settings/accounts",
            "next": null,
            "prev": null
          }
        }
      }
    }
  },
  "x-readme": {
    "explorer-enabled": true,
    "metrics-enabled": false,
    "proxy-enabled": false
  }
}
```