Dropbox Sign (HelloSign) Account API

{'$ref': './markdown/en/tags/account-tag-description.md'}

Operations 4

POST /account/create Create Account #
GET /account Get Account #
PUT /account Update Account #
POST /account/verify Verify Account #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/hellosign-account-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

hellosign-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dropbox Sign Account API
  description: Dropbox Sign v3 API
  termsOfService: https://www.hellosign.com/terms
  contact:
    email: apisupport@hellosign.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  version: 3.0.0
servers:
- url: https://api.hellosign.com/v3
security:
- api_key: []
- oauth2:
  - account_access
  - signature_request_access
  - template_access
  - team_access
  - api_app_access
  - basic_account_info
  - request_signature
tags:
- name: Account
  description:
    $ref: ./markdown/en/tags/account-tag-description.md
paths:
  /account/create:
    post:
      tags:
      - Account
      summary: Create Account
      description: Creates a new Dropbox Sign Account that is associated with the specified `email_address`.
      operationId: accountCreate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreateRequest'
            examples:
              example:
                $ref: '#/components/examples/AccountCreateRequest'
              oauth_example:
                $ref: '#/components/examples/AccountCreateRequestOAuth'
      responses:
        '200':
          description: successful operation
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-Ratelimit-Reset:
              $ref: '#/components/headers/X-Ratelimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountCreateResponse'
              examples:
                example:
                  $ref: '#/components/examples/AccountCreateResponse'
                oauth_example:
                  $ref: '#/components/examples/AccountCreateOAuthResponse'
        4XX:
          description: failed_operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                400_example:
                  $ref: '#/components/examples/Error400Response'
                401_example:
                  $ref: '#/components/examples/Error401Response'
                402_example:
                  $ref: '#/components/examples/Error402Response'
                403_example:
                  $ref: '#/components/examples/Error403Response'
                429_example:
                  $ref: '#/components/examples/Error429Response'
                4XX_example:
                  $ref: '#/components/examples/Error4XXResponse'
      security:
      - api_key: []
      - oauth2:
        - account_access
      x-codeSamples:
      - lang: PHP
        label: PHP
        source:
          $ref: examples/AccountCreateExample.php
      - lang: C#
        label: C#
        source:
          $ref: examples/AccountCreateExample.cs
      - lang: TypeScript
        label: TypeScript
        source:
          $ref: examples/AccountCreateExample.ts
      - lang: Java
        label: Java
        source:
          $ref: examples/AccountCreateExample.java
      - lang: Ruby
        label: Ruby
        source:
          $ref: examples/AccountCreateExample.rb
      - lang: Python
        label: Python
        source:
          $ref: examples/AccountCreateExample.py
      - lang: cURL
        label: cURL
        source:
          $ref: examples/AccountCreateExample.sh
      x-meta:
        seo:
          title: Create Account | API Documentation | Dropbox Sign for Developers
          description: The Dropbox Sign API allows you to build with a range of tools. Find out how to create a new Dropbox Sign Account using the specified `email_address` here.
  /account:
    get:
      tags:
      - Account
      summary: Get Account
      description: Returns the properties and settings of your Account.
      operationId: accountGet
      parameters:
      - name: account_id
        in: query
        description: '`account_id` or `email_address` is required. If both are provided, the account id prevails.


          The ID of the Account.'
        required: false
        schema:
          type: string
      - name: email_address
        in: query
        description: '`account_id` or `email_address` is required, If both are provided, the account id prevails.


          The email address of the Account.'
        required: false
        schema:
          type: string
      responses:
        '200':
          description: successful operation
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-Ratelimit-Reset:
              $ref: '#/components/headers/X-Ratelimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountGetResponse'
              examples:
                example:
                  $ref: '#/components/examples/AccountGetResponse'
        4XX:
          description: failed_operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                400_example:
                  $ref: '#/components/examples/Error400Response'
                401_example:
                  $ref: '#/components/examples/Error401Response'
                402_example:
                  $ref: '#/components/examples/Error402Response'
                403_example:
                  $ref: '#/components/examples/Error403Response'
                429_example:
                  $ref: '#/components/examples/Error429Response'
                4XX_example:
                  $ref: '#/components/examples/Error4XXResponse'
      security:
      - api_key: []
      - oauth2:
        - account_access
        - basic_account_info
      x-codeSamples:
      - lang: PHP
        label: PHP
        source:
          $ref: examples/AccountGetExample.php
      - lang: C#
        label: C#
        source:
          $ref: examples/AccountGetExample.cs
      - lang: TypeScript
        label: TypeScript
        source:
          $ref: examples/AccountGetExample.ts
      - lang: Java
        label: Java
        source:
          $ref: examples/AccountGetExample.java
      - lang: Ruby
        label: Ruby
        source:
          $ref: examples/AccountGetExample.rb
      - lang: Python
        label: Python
        source:
          $ref: examples/AccountGetExample.py
      - lang: cURL
        label: cURL
        source:
          $ref: examples/AccountGetExample.sh
      x-meta:
        seo:
          title: Get Account | API Documentation | Dropbox Sign for Developers
          description: The Dropbox Sign API allows you to build with a wide range of tools. To find out how to return the properties and settings of your Account, click here.
    put:
      tags:
      - Account
      summary: Update Account
      description: Updates the properties and settings of your Account. Currently only allows for updates to the [Callback URL](/api/reference/tag/Callbacks-and-Events) and locale.
      operationId: accountUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdateRequest'
            examples:
              example:
                $ref: '#/components/examples/AccountUpdateRequest'
      responses:
        '200':
          description: successful operation
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-Ratelimit-Reset:
              $ref: '#/components/headers/X-Ratelimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountGetResponse'
              examples:
                example:
                  $ref: '#/components/examples/AccountUpdateResponse'
        4XX:
          description: failed_operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                400_example:
                  $ref: '#/components/examples/Error400Response'
                401_example:
                  $ref: '#/components/examples/Error401Response'
                402_example:
                  $ref: '#/components/examples/Error402Response'
                403_example:
                  $ref: '#/components/examples/Error403Response'
                429_example:
                  $ref: '#/components/examples/Error429Response'
                409_example:
                  $ref: '#/components/examples/Error409Response'
                4XX_example:
                  $ref: '#/components/examples/Error4XXResponse'
      security:
      - api_key: []
      - oauth2:
        - account_access
      x-codeSamples:
      - lang: PHP
        label: PHP
        source:
          $ref: examples/AccountUpdateExample.php
      - lang: C#
        label: C#
        source:
          $ref: examples/AccountUpdateExample.cs
      - lang: TypeScript
        label: TypeScript
        source:
          $ref: examples/AccountUpdateExample.ts
      - lang: Java
        label: Java
        source:
          $ref: examples/AccountUpdateExample.java
      - lang: Ruby
        label: Ruby
        source:
          $ref: examples/AccountUpdateExample.rb
      - lang: Python
        label: Python
        source:
          $ref: examples/AccountUpdateExample.py
      - lang: cURL
        label: cURL
        source:
          $ref: examples/AccountUpdateExample.sh
      x-meta:
        seo:
          title: Update Account | API Documentation | Dropbox Sign for Developers
          description: The Dropbox Sign API allows you to build with a wide range of tools. To find out how update the properties and settings of your Account, click here.
  /account/verify:
    post:
      tags:
      - Account
      summary: Verify Account
      description: Verifies whether an Dropbox Sign Account exists for the given email address.
      operationId: accountVerify
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountVerifyRequest'
            examples:
              example:
                $ref: '#/components/examples/AccountVerifyRequest'
      responses:
        '200':
          description: successful operation
          headers:
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-Ratelimit-Reset:
              $ref: '#/components/headers/X-Ratelimit-Reset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountVerifyResponse'
              examples:
                example:
                  $ref: '#/components/examples/AccountVerifyFoundResponse'
                not_found_example:
                  $ref: '#/components/examples/AccountVerifyNotFoundResponse'
        4XX:
          description: failed_operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                400_example:
                  $ref: '#/components/examples/Error400Response'
                401_example:
                  $ref: '#/components/examples/Error401Response'
                402_example:
                  $ref: '#/components/examples/Error402Response'
                403_example:
                  $ref: '#/components/examples/Error403Response'
                429_example:
                  $ref: '#/components/examples/Error429Response'
                4XX_example:
                  $ref: '#/components/examples/Error4XXResponse'
      security:
      - api_key: []
      - oauth2:
        - account_access
      x-codeSamples:
      - lang: PHP
        label: PHP
        source:
          $ref: examples/AccountVerifyExample.php
      - lang: C#
        label: C#
        source:
          $ref: examples/AccountVerifyExample.cs
      - lang: TypeScript
        label: TypeScript
        source:
          $ref: examples/AccountVerifyExample.ts
      - lang: Java
        label: Java
        source:
          $ref: examples/AccountVerifyExample.java
      - lang: Ruby
        label: Ruby
        source:
          $ref: examples/AccountVerifyExample.rb
      - lang: Python
        label: Python
        source:
          $ref: examples/AccountVerifyExample.py
      - lang: cURL
        label: cURL
        source:
          $ref: examples/AccountVerifyExample.sh
      x-meta:
        seo:
          title: Verify Account | API Documentation | Dropbox Sign for Developers
          description: The Dropbox Sign API allows you to build with a wide range of tools. To find out how to verify whether an Account exists, click here.
components:
  schemas:
    OAuthTokenResponse:
      properties:
        access_token:
          type: string
        token_type:
          type: string
        refresh_token:
          type: string
        expires_in:
          description: Number of seconds until the `access_token` expires. Uses epoch time.
          type: integer
        state:
          type:
          - string
          - 'null'
      type: object
      x-internal-class: true
    ErrorResponseError:
      description: Contains information about an error that occurred.
      required:
      - error_msg
      - error_name
      properties:
        error_msg:
          description: Message describing an error.
          type: string
        error_path:
          description: Path at which an error occurred.
          type: string
        error_name:
          description: Name of the error. See the `x-error-codes` catalog in openapi file for a complete list of possible error codes with detailed information including HTTP status codes, causes, remediation steps, and retry guidance.
          type: string
      type: object
    AccountUpdateRequest:
      properties:
        account_id:
          description: The ID of the Account
          type:
          - string
          - 'null'
        callback_url:
          description: The URL that Dropbox Sign should POST events to.
          type: string
        locale:
          description: The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.
          type: string
      type: object
    AccountResponse:
      properties:
        account_id:
          description: The ID of the Account
          type: string
        email_address:
          description: The email address associated with the Account.
          type: string
        is_locked:
          description: Returns `true` if the user has been locked out of their account by a team admin.
          type: boolean
        is_paid_hs:
          description: Returns `true` if the user has a paid Dropbox Sign account.
          type: boolean
        is_paid_hf:
          description: Returns `true` if the user has a paid HelloFax account.
          type: boolean
        quotas:
          $ref: '#/components/schemas/AccountResponseQuotas'
        callback_url:
          description: The URL that Dropbox Sign events will `POST` to.
          type:
          - string
          - 'null'
        role_code:
          description: The membership role for the team.
          type:
          - string
          - 'null'
        team_id:
          description: The id of the team account belongs to.
          type:
          - string
          - 'null'
        locale:
          description: The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.
          type:
          - string
          - 'null'
        usage:
          $ref: '#/components/schemas/AccountResponseUsage'
        settings:
          $ref: '#/components/schemas/AccountResponseSettings'
      type: object
      x-internal-class: true
    AccountVerifyRequest:
      required:
      - email_address
      properties:
        email_address:
          description: Email address to run the verification for.
          type: string
          format: email
      type: object
    AccountResponseUsage:
      description: Details concerning monthly usage
      properties:
        fax_pages_sent:
          description: Number of fax pages sent
          type:
          - integer
          - 'null'
      type: object
      x-internal-class: true
    AccountCreateResponse:
      required:
      - account
      properties:
        account:
          $ref: '#/components/schemas/AccountResponse'
        oauth_data:
          $ref: '#/components/schemas/OAuthTokenResponse'
        warnings:
          description: A list of warnings.
          type: array
          items:
            $ref: '#/components/schemas/WarningResponse'
      type: object
      x-internal-class: true
    WarningResponse:
      description: A list of warnings.
      required:
      - warning_msg
      - warning_name
      properties:
        warning_msg:
          description: Warning message
          type: string
        warning_name:
          description: Warning name
          type: string
      type: object
    AccountGetResponse:
      required:
      - account
      properties:
        account:
          $ref: '#/components/schemas/AccountResponse'
        warnings:
          description: A list of warnings.
          type: array
          items:
            $ref: '#/components/schemas/WarningResponse'
      type: object
      x-internal-class: true
    AccountVerifyResponse:
      properties:
        account:
          $ref: '#/components/schemas/AccountVerifyResponseAccount'
        warnings:
          description: A list of warnings.
          type: array
          items:
            $ref: '#/components/schemas/WarningResponse'
      type: object
      x-internal-class: true
    AccountResponseQuotas:
      description: Details concerning remaining monthly quotas.
      properties:
        api_signature_requests_left:
          description: API signature requests remaining.
          type:
          - integer
          - 'null'
        documents_left:
          description: Signature requests remaining.
          type:
          - integer
          - 'null'
        templates_total:
          description: Total API templates allowed.
          type:
          - integer
          - 'null'
        templates_left:
          description: API templates remaining.
          type:
          - integer
          - 'null'
        sms_verifications_left:
          description: SMS verifications remaining.
          type:
          - integer
          - 'null'
        num_fax_pages_left:
          description: Number of fax pages left
          type:
          - integer
          - 'null'
      type: object
      x-internal-class: true
    AccountCreateRequest:
      required:
      - email_address
      properties:
        client_id:
          description: 'Used when creating a new account with OAuth authorization.


            See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization)'
          type: string
        client_secret:
          description: 'Used when creating a new account with OAuth authorization.


            See [OAuth 2.0 Authorization](https://app.hellosign.com/api/oauthWalkthrough#OAuthAuthorization)'
          type: string
        email_address:
          description: The email address which will be associated with the new Account.
          type: string
          format: email
        locale:
          description: The locale used in this Account. Check out the list of [supported locales](/api/reference/constants/#supported-locales) to learn more about the possible values.
          type: string
      type: object
    ErrorResponse:
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ErrorResponseError'
      type: object
    AccountResponseSettings:
      description: Subset of configured settings
      properties:
        signer_access_codes:
          description: Returns `true` if _Custom access codes_ is enabled in Admin Console. [Read more](https://developers.hellosign.com/docs/sms-tools/walkthrough).
          type: boolean
        sms_delivery:
          description: Returns `true` if _Text message_ is enabled in Admin Console. [Read more](https://developers.hellosign.com/docs/sms-tools/walkthrough).
          type: boolean
        sms_authentication:
          description: Returns `true` if _Signer authentication_ is enabled in Admin Console. [Read more](https://developers.hellosign.com/docs/sms-tools/walkthrough).
          type: boolean
      type: object
      x-internal-class: true
    AccountVerifyResponseAccount:
      properties:
        email_address:
          description: The email address associated with the Account.
          type: string
      type: object
      x-internal-class: true
  examples:
    Error4XXResponse:
      summary: Error 4XX failed_operation
      value:
        $ref: examples/json/Error4XXResponse.json
    Error403Response:
      summary: Error 403 forbidden
      value:
        $ref: examples/json/Error403Response.json
    AccountVerifyFoundResponse:
      summary: Account Found
      value:
        $ref: examples/json/AccountVerifyFoundResponse.json
    AccountGetResponse:
      summary: Account Get
      value:
        $ref: examples/json/AccountGetResponse.json
    Error402Response:
      summary: Error 402 payment_required
      value:
        $ref: examples/json/Error402Response.json
    AccountCreateResponse:
      summary: Account Create
      value:
        $ref: examples/json/AccountCreateResponse.json
    AccountUpdateResponse:
      summary: Account Update
      value:
        $ref: examples/json/AccountUpdateResponse.json
    AccountVerifyNotFoundResponse:
      summary: Account Not Found
      value:
        $ref: examples/json/AccountVerifyNotFoundResponse.json
    AccountCreateRequest:
      summary: Default Example
      value:
        $ref: examples/json/AccountCreateRequest.json
    Error401Response:
      summary: Error 401 unauthorized
      value:
        $ref: examples/json/Error401Response.json
    AccountVerifyRequest:
      summary: Default Example
      value:
        $ref: examples/json/AccountVerifyRequest.json
    Error400Response:
      summary: Error 400 bad_request
      value:
        $ref: examples/json/Error400Response.json
    Error409Response:
      summary: Error 409 conflict
      value:
        $ref: examples/json/Error409Response.json
    AccountCreateOAuthResponse:
      summary: Account Create with OAuth Authorization
      value:
        $ref: examples/json/AccountCreateOAuthResponse.json
    AccountCreateRequestOAuth:
      summary: OAuth Example
      value:
        $ref: examples/json/AccountCreateRequestOAuth.json
    Error429Response:
      summary: Error 429 exceeded_rate
      value:
        $ref: examples/json/Error429Response.json
    AccountUpdateRequest:
      summary: Default Example
      value:
        $ref: examples/json/AccountUpdateRequest.json
  headers:
    X-RateLimit-Remaining:
      description: The number of requests remaining in the current rate limit window.
      schema:
        type: integer
        format: int32
        example: 99
    X-RateLimit-Limit:
      description: The maximum number of requests per hour that you can make.
      schema:
        type: integer
        format: int32
        example: 100
    X-Ratelimit-Reset:
      description: The Unix time at which the rate limit will reset to its maximum.
      schema:
        type: integer
        format: int64
        example: 1430170900
  securitySchemes:
    api_key:
      type: http
      description: 'Your API key can be used to make calls to the Dropbox Sign API. See [Authentication](/api/reference/authentication) for more information.

        ✅ Supported by Try it console (calls sent in `test_mode` only).'
      scheme: basic
    oauth2:
      type: http
      description: 'You can use an Access Token issued through an OAuth flow to send calls to the Dropbox Sign API from your app. The access scopes required by this endpoint are listed in the gray box above. See [Authentication](/api/reference/authentication) for more information.

        ❌ **Not supported** by Try it console.'
      bearerFormat: JWT
      scheme: bearer
externalDocs:
  description: Legacy API Reference
  url: https://app.hellosign.com/api/reference
x-error-codes:
  bad_request:
    http_status: 400
    summary: The request contained invalid or malformed parameters.
    cause: A parameter failed validation, or the request body was malformed.
    remediation: Inspect error_msg and error_path, correct the offending parameter, and resend.
    retryable: 'no'
  unauthorized:
    http_status: 401
    summary: The credentials supplied are missing or invalid.
    cause: Missing, malformed, or invalid API key or OAuth access token.
    remediation: Verify the API key or OAuth token and the Authorization header, then retry.
    retryable: 'no'
  payment_required:
    http_status: 402
    summary: The account must be credited or upgraded to perform this action.
    cause: The action requires a paid plan, additional quota, or API credits.
    remediation: Upgrade the plan or add the required credits/quota, then retry.
    retryable: 'no'
  forbidden:
    http_status: 403
    summary: The action is not allowed for these credentials or in the current context.
    cause: The authenticated account lacks access to the resource or operation.
    remediation: Confirm the account has access to the resource and the required permissions.
    retryable: 'no'
  not_found:
    http_status: 404
    summary: Nothing matches the requested resource.
    cause: The resource id does not exist or is not visible to this account.
    remediation: Verify the id and that the resource belongs to the authenticated account.
    retryable: 'no'
  conflict:
    http_status: 409
    summary: The request was well-formed but conflicts with the current state.
    cause: The target resource is in a state incompatible with the request (e.g. a signature request is still being set up).
    remediation: Wait briefly and retry, or listen for a callback event confirming the resource is ready.
    retryable: conditional
  exceeded_rate:
    http_status: 429
    summary: Your account's API request rate limit has been exceeded.
    cause: Too many requests were sent within the rate-limit window for this request type.
    remediation: Pace requests using the X-RateLimit-* response headers and retry after the window resets.
    retryable: 'yes'
    backoff: Honor X-Ratelimit-Reset (Unix epoch); otherwise exponential backoff with jitter. No Retry-After header is sent.
  unknown:
    http_status: 500
    summary: An unexpected error occurred.
    cause: An unhandled server-side error, or a status code without a more specific error_name.
    remediation: Retry transient failures; if it persists, contact support with the request details.
    retryable: conditional
    backoff: For transient 5xx, retry with exponential backoff; otherwise do not retry.
  team_invite_failed:
    http_status: 403
    summary: The team invitation could not be completed.
    cause: The invitee already belongs to a team, or the invite is otherwise not permitted.
    remediation: Confirm the invitee is not already on a team before inviting.
    retryable: 'no'
  max_faxes:
    http_status: 429
    summary: Too many fax transmissions are currently pending or transmitting.
    cause: The account has reached the limit of concurrent in-flight fax transmissions.
    remediation: Wait for outstanding transmissions to complete, then retry.
    retryable: 'yes'
    backoff: Retry with exponential backoff once pending transmissions clear.
  invalid_recipient:
    http_status: 400
    summary: The recipient (fax number or email address) is invalid.
    cause: A recipient value did not pass validation.
    remediation: Correct the recipient value and resend.
    retryable: 'no'
  signature_request_cancel_failed:
    http_status: 400
    summary: The signature request could not be cancelled.
    cause: The caller is not the requester, or the request is already fully executed/closed.
    remediation: Only the requester can cancel, and only before the request is fully executed.
    retryable: 'no'
  signature_request_remove_failed:
    http_status: 400
    summary: Access to the signature request could not be removed.
    cause: The signature request has not yet been fully executed, so access cannot be revoked.
    remediation: Wait until all parties have signed, or call /signature_request/cancel to cancel incomplete requests instead.
    retryable: 'no'
  maintenance:
    http_status: 503
    summary: The request could not be completed because the site is under maintenance.
    cause: The API is in a scheduled maintenance window.
    remediation: Retry once the maintenance window ends.
    retryable: 'yes'
    backoff: Retry later with exponential backoff.
  method_not_supported:
    http_status: 405
    summary: The HTTP method is not supported for this endpoint.
    cause: The request used a verb the endpoint does not accept.
    remediation: Use the HTTP method documented for the endpoint.
    retryable: 'no'
  invalid_reminder:
    http_status: 400
    summary: The signature request reminder was invalid.
    cause: A reminder was attempted against an ineligible request (e.g. embedded, closed, or expired).
    remediation: Only send reminders for eligible (non-embedded, open) signature requests.
    retryable: 'no'
  unavailable:
    http_status: 503
    summary: The service is temporarily unavailable.
    cause: A downstream dependency or the service itself is temporarily unavailable.
    remediation: Retry later with exponential backoff.
    retryable: 'yes'
    backoff: Retry later with exponential backoff and jitter.
  unprocessable_entity:
    http_status: 422
    summary: The request was understood but the target entity cannot be processed.
    cause: The resource is still being processed, or it is in an error state.
    remediation: If the resource is still processing, wait and retry; if it is in an error state, recreate/resend it instead of retrying.
    retryable: conditional
    backoff: If still processing, retry with exponential backoff; if in an error state, do not retry.
  signature_request_expired:
    http_status:
    - 400
    - 403
    summary: The signature request has expired.
    cause: The operation targets a request whose expiration has passed. Most endpoints return 400; final-copy/download endpoints return 403.
    remediation: The request can no longer be acted upon; create a new signature request.
    retryable: 'no'
  deleted:
    http_status: 410
    summary: The request was cancelled or deleted.
    cause: The resource has been cancelled or removed and is no longer available.
    remediation: Do not retry; the resource is permanently gone.
    retryable: 'no'
x-oauth-error-codes:
  invalid_grant:
    http_status:
    - 400
    - 401
    summary: The OAuth grant (authorization code or refresh token) is invalid or expired.
    cause: The code/token was already used, expired, or does not match the client.
    remediation: Re-initiate the OAuth flow to obtain a fresh authorization code.
    retryable: 'no'
  invalid_client:
    http_status: 400
    summary: The OAuth client credentials are invalid.
    cause: The client_id or client_secret is unrecognized or incorrect.
    remediation: Verify the client_id and client_secret from the API app settings.
    retryable: 'no'
  invalid_request:
    http_status: 400
    summary: The OAuth request is malformed or missing required parameters.
    cause: A required parameter is missing, or the request format is invalid.
    remediation: Check the request against the OAuth token endpoint documentation.
    retryable: 'no'
  unauthorized_client:
    http_status:
    - 40

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hellosign/refs/heads/main/openapi/hellosign-account-api-openapi.yml