La búsqueda solo se carga cuando la usas. Explora todas las categorías a continuación.

Cuentas y espacios de trabajo

Obtener estado de facturación

Consulta el plan de facturación del usuario, el estado del pago, las fechas del ciclo actual y el uso de cuotas (publicaciones exitosas, publicaciones programadas pendientes, cuentas conectadas). Compruébalo antes de programar grandes lotes.

POST /identity-api/billing/status

Contrato revisado: · sha256:563d2d581da0ad29

Descripción general

Consulta el plan de facturación del usuario, el estado del pago, las fechas del ciclo actual y el uso de cuotas (publicaciones exitosas, publicaciones programadas pendientes, cuentas conectadas). Compruébalo antes de programar grandes lotes.

Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.

Autenticación y permisos

Clases de credenciales aceptadas
user_session, delegated_oauth, personal_access_token
Capacidad delegada
agent:operate
Rol mínimo del espacio de trabajo
Este contrato no exige un rol mínimo de espacio de trabajo; siguen aplicándose las comprobaciones de propiedad y permisos.
Alcance del acceso
Recursos a los que este usuario está autorizado a acceder
Se requiere consentimiento para todos los espacios de trabajo
No
Cambia el estado
No
Cuando la operación se completa
synchronous_http_response

Un token solo puede usar los derechos de su propietario. Cada solicitud comprueba pertenencia al espacio, propiedad del recurso, espacios elegidos y capacidades concedidas. Los perfiles core y full cambian qué herramientas se muestran; no conceden acceso.

Campos de solicitud

Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.

Campos de solicitud
Campo / ramaTipo / obligatorioRestricciones
$objectObligatorio en el objeto principal
  • additionalProperties: false
JSON Schema completo
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Respuesta y finalización

Estados HTTP de éxito: 200. Cuando la operación se completa: synchronous_http_response.

Una respuesta HTTP exitosa puede indicar aceptación, no finalización. Para trabajo en segundo plano, guarda el ID devuelto y consulta la misma operación hasta que termine. Una publicación programada o aceptada solo está publicada cuando la plataforma lo confirma; un tiempo de espera agotado en el cliente no determina el resultado.

Obligatorio significa obligatorio dentro del objeto principal y la rama elegida. Un campo secundario obligatorio no convierte en obligatorio un objeto principal opcional. Las reglas y nombres de campos siguientes se copian del contrato.

Respuesta y finalización
Campo / ramaTipo / obligatorioRestricciones
$objectObligatorio en el objeto principal—
billing_account_idstringObligatorio en el objeto principal
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
plan_keystringObligatorio en el objeto principal
  • enum: ["free","founding_pro"]
plan_versionintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
payment_statestringObligatorio en el objeto principal
  • minLength: 1
  • maxLength: 64
entitlement_sourcestringObligatorio en el objeto principal
  • enum: ["default","stripe","internal_test","reconciliation","manual"]
has_stripe_customerbooleanObligatorio en el objeto principal—
checkout_enabledbooleanObligatorio en el objeto principal—
cycleobjectObligatorio en el objeto principal—
cycle.period_startstringObligatorio en el objeto principal
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
cycle.period_endstringObligatorio en el objeto principal
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
cycle.reset_atstringObligatorio en el objeto principal
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
quotaobjectObligatorio en el objeto principal—
quota.successful_destination_publishesobjectObligatorio en el objeto principal—
quota.successful_destination_publishes.limitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.successful_destination_publishes.reservedintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.successful_destination_publishes.consumedintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.successful_destination_publishes.remainingintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.pending_scheduled_postsobjectObligatorio en el objeto principal—
quota.pending_scheduled_posts.limitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.pending_scheduled_posts.activeintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.pending_scheduled_posts.remainingintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.connected_social_accountsobjectObligatorio en el objeto principal—
quota.connected_social_accounts.limitintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.connected_social_accounts.activeintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
quota.connected_social_accounts.remainingintegerObligatorio en el objeto principal
  • minimum: 0
  • maximum: 9007199254740991
history_daysintegerObligatorio en el objeto principal
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
capabilitiesobjectObligatorio en el objeto principal
  • additionalProperties: {}
capabilities.*any JSON valueOpcional / elemento—
JSON Schema completo
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "billing_account_id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "plan_key": {
      "type": "string",
      "enum": [
        "free",
        "founding_pro"
      ]
    },
    "plan_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "payment_state": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64
    },
    "entitlement_source": {
      "type": "string",
      "enum": [
        "default",
        "stripe",
        "internal_test",
        "reconciliation",
        "manual"
      ]
    },
    "has_stripe_customer": {
      "type": "boolean"
    },
    "checkout_enabled": {
      "type": "boolean"
    },
    "cycle": {
      "type": "object",
      "properties": {
        "period_start": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "period_end": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      },
      "required": [
        "period_start",
        "period_end",
        "reset_at"
      ]
    },
    "quota": {
      "type": "object",
      "properties": {
        "successful_destination_publishes": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "reserved": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "consumed": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "remaining": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "limit",
            "reserved",
            "consumed",
            "remaining"
          ]
        },
        "pending_scheduled_posts": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "active": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "remaining": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "limit",
            "active",
            "remaining"
          ]
        },
        "connected_social_accounts": {
          "type": "object",
          "properties": {
            "limit": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "active": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "remaining": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "limit",
            "active",
            "remaining"
          ]
        }
      },
      "required": [
        "successful_destination_publishes",
        "pending_scheduled_posts",
        "connected_social_accounts"
      ]
    },
    "history_days": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "capabilities": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "billing_account_id",
    "plan_key",
    "plan_version",
    "payment_state",
    "entitlement_source",
    "has_stripe_customer",
    "checkout_enabled",
    "cycle",
    "quota",
    "history_days",
    "capabilities"
  ]
}

Errores y reintentos seguros

Comprueba el estado HTTP y el cuerpo de respuesta. Un error de validación 400 puede contener un ZodError; los errores del controlador usan los campos error, message y code. Conserva request_id o x-request-id para el diagnóstico, sin credenciales. Corrige los errores de acceso 401/403 antes de reintentar y respeta Retry-After para 429. Si una escritura es incierta o devuelve 5xx, consulta primero el resultado existente. Reutiliza una clave de idempotencia solo donde se admita; el comportamiento de reintento varía por operación y no garantiza una entrega exactamente una vez.

Guía de solución de problemas

Ejemplos

Estos ejemplos usan valores ficticios comprobados con los esquemas. Sustituye los IDs por otros autorizados, los archivos multimedia por recursos listos y las fechas por tu hora de publicación confirmada. Comprueba la elegibilidad de la cuenta antes de enviar una escritura. Esta página no envía solicitudes API.

Establece SOSOAPI_ACCESS_TOKEN en tu servidor con una credencial aceptada por esta operación y mantenla fuera del código del navegador. Para un agente, usa sosoapi auth login para iniciar sesión en el navegador y deja a la CLI renovar sus credenciales.

request.json

{}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/billing/status" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/billing/status", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /identity-api/billing/status < request.json

Ejemplo de respuesta sintética

{
  "billing_account_id": "11111111-1111-4111-8111-111111111111",
  "plan_key": "free",
  "plan_version": 1,
  "payment_state": "example",
  "entitlement_source": "default",
  "has_stripe_customer": false,
  "checkout_enabled": false,
  "cycle": {
    "period_start": "2099-01-15T09:00:00Z",
    "period_end": "2099-01-15T09:00:00Z",
    "reset_at": "2099-01-15T09:00:00Z"
  },
  "quota": {
    "successful_destination_publishes": {
      "limit": 0,
      "reserved": 0,
      "consumed": 0,
      "remaining": 0
    },
    "pending_scheduled_posts": {
      "limit": 0,
      "active": 0,
      "remaining": 0
    },
    "connected_social_accounts": {
      "limit": 0,
      "active": 0,
      "remaining": 0
    }
  },
  "history_days": 1,
  "capabilities": {}
}

MCP: sosoapi_get_billing_status