EvoHub DocsEvoHub Docs Sign in

End the commitment early

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs": {
      "url": "https://docs.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
DELETE/api/v1/billing/commitment

Ends the running commitment before its term is up. It stops at the end of the current month: the month in progress stays committed and is billed on its terms.

Ending early costs the discount already taken: every committed month served, including the current one, is repriced at the on-demand price, and the difference is owed (never less than zero). The amount is estimated_clawback_usd on GET /api/v1/billing/commitment, and is recorded as clawback_usd on the ended commitment. It is invoiced and charged to the card on file shortly afterwards, and then appears in payments as commitment_clawback; an amount below USD 0.50 is not charged. No request body.

Answers with the new commitment state.

Requires the billing:commitment:write scope.

Authorization

Any one of:

Responses

200

The commitment was ended.

Content type: application/json

Type: object

  • data CommitmentState
    Show CommitmentState properties
    • terms CommitmentTerms
      Show CommitmentTerms properties
      • version integer
      • body string
        The full text of the agreement.
      • body_sha256 string
      • term_months integer
      • published_at string (date-time)
    • active Commitment
      Show Commitment properties
      • id integer
      • org_id string
      • ehu_per_month number
      • starts_on string (date-time)
        The first day of the first committed month.
      • ends_on string (date-time)
        The first day after the term (exclusive).
      • status string
        One of: active completed terminated
      • terms_version integer
      • terms_sha256 string
        The hash of the agreement text that was accepted.
      • accepted_at string (date-time)
      • accepted_by string
        The person, or the organization key, that accepted.
      • accepted_ip string
      • terminated_at string (date-time)
      • terminated_from string (date-time)
        The first month no longer committed, for an ended commitment.
      • terminated_by string
      • clawback_usd number
        The early-termination charge.
      • clawback_invoice_id string
      • clawback_invoice_url string (uri)
      • clawback_invoice_pdf_url string (uri)
      • clawback_invoiced_at string (date-time)
      • ending_notice_at string (date-time)
        When the organization was told the term is nearly over.
      • created_at string (date-time)
    • starts_on string (date-time)
      When a commitment agreed now would start.
    • estimated_clawback_usd number
      What ending the active commitment today would cost; 0 without one.
    • commitment_usd_per_ehu number
    • on_demand_usd_per_ehu number
    • history array of Commitment
      The last 24 commitments.
      Show Commitment properties
      • id integer
      • org_id string
      • ehu_per_month number
      • starts_on string (date-time)
        The first day of the first committed month.
      • ends_on string (date-time)
        The first day after the term (exclusive).
      • status string
        One of: active completed terminated
      • terms_version integer
      • terms_sha256 string
        The hash of the agreement text that was accepted.
      • accepted_at string (date-time)
      • accepted_by string
        The person, or the organization key, that accepted.
      • accepted_ip string
      • terminated_at string (date-time)
      • terminated_from string (date-time)
        The first month no longer committed, for an ended commitment.
      • terminated_by string
      • clawback_usd number
        The early-termination charge.
      • clawback_invoice_id string
      • clawback_invoice_url string (uri)
      • clawback_invoice_pdf_url string (uri)
      • clawback_invoiced_at string (date-time)
      • ending_notice_at string (date-time)
        When the organization was told the term is nearly over.
      • created_at string (date-time)

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

404

No commitment is running (NO_COMMITMENT).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

429

Too many requests (RATE_LIMITED). Wait for Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait before retrying.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

500

The commitment could not be ended (COMMITMENT_FAILED). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Example: STATEMENT_NOT_FOUND
    • message string required
      Example: No statement for that period.
    • request_id string

Example request

curl -X DELETE 'https://evohub.io/api/v1/billing/commitment' \
  -H 'Authorization: Bearer <TOKEN>'