accounts.revertSeatCancellation

Undo a scheduled seat cancellation before it takes effect.

Prerequisites

  • A Curviate API key, passed as apiKey when you construct the client. Quickstart shows how to create one.

Signature

revertSeatCancellation(seatId: string): Promise<SeatCancelRevertResult>

Example

import { Curviate } from "@curviate/sdk";
 
const curviate = new Curviate({
  apiKey: "cvt_live_...",
  baseUrl: "https://api.curviate.com",
});
 
await curviate.accounts.revertSeatCancellation("seat_123");

Parameters

NameTypeRequiredDescription
seatIdstringYesThe seat ID (seat_...) whose scheduled cancellation to revert.

Returns

Resolves to SeatCancelRevertResult. Top-level fields: reverted, safety_warning.

Error codes

CodeWhat it means, and what to do
UNAUTHORIZEDThe API key is missing, malformed, or revoked. Check the key you passed to the client.
INVALID_REQUESTA parameter failed validation. The message names the offending field; fix the request rather than retrying it.
RATE_LIMIT_ACCOUNTThis account's own quota is exhausted. Wait for the window in the Retry-After header, then retry.
RATE_LIMIT_TENANTThe tenant-wide quota is exhausted across all accounts. Slow the whole workload, not just this call.
PLATFORM_ERRORAn upstream failure, usually transient: retry once with backoff before treating it as a real error. Check the response first, though. When it carries retry_likely_to_succeed: false and retry_hint: {kind: "never"}, retrying cannot help and backing off only delays the real answer.
ACCOUNT_DISPUTEDA payment on this workspace is disputed. Settle it with your bank or card issuer, or contact support; retrying will not help.
CANCELLATION_ALREADY_EFFECTIVENothing is scheduled to revert: the seat was never cancelled, was already reverted, or its cancellation took effect.
INSUFFICIENT_ROLEYour role in the team does not allow this action. Ask a team Owner to do it or to change your role; retrying will not help.
INVALID_CANCELLATION_SOURCEThe whole subscription is scheduled to cancel, not this seat, so seats cannot be restored one at a time. Resume the subscription instead.
PAYMENT_REQUIREDThe workspace has no active subscription, or its subscription is past due. Subscribe, or update the payment method, then retry.
SEAT_NOT_FOUNDThe seat id does not exist for this tenant.
STRIPE_DRIFT_DETECTEDThe seat price configured on our side does not match the price you were shown, so completing this would bill an amount you never saw. Nothing was charged. Not something you can fix by retrying: it fails identically until we correct the price, so stop and contact support.
SUBSCRIPTION_BUSYAnother change to this subscription was in progress. After a seat add, check the seat count before retrying, since the purchase may have gone through; otherwise retry in a few seconds.
SUBSCRIPTION_NOT_FOUNDNo active subscription exists for this tenant. Buy one first, then retry.
TRIAL_ACTIVE_SEAT_LIMITThe workspace is on a free trial, which cannot add or change seats. Buy a seat to convert to a paid subscription first.

Every code above is a stable CurviateError.code you can branch on. The full list, the response envelope, and retry semantics are in the Error codes reference.

Next steps

  • Quickstart: connect a LinkedIn account. An empty account list means the key works and nothing is connected yet.
  • accounts.list: List the tenant's connected LinkedIn accounts, cursor-paginated.
  • accounts.listSeats: List the workspace's live seats: each seat_id, whether an account occupied it, and that account_id (null when free).
  • SDK Quick Start: installation, the client, account scoping, and pagination.